多语言展示
当前在线:1644今日阅读:27今日分享:41

Screen position out of view frustum解决办法

Unity莫名出现“Screen position out of view frustum (screen pos 256.000000, 0.000000, 15298.202148) (Camera rect 0 0 256 256)”的报错提醒。针对这个问题查阅了很多资料,参考大多是外文的,整理了一下我发现的解决办法,希望总有一种办法可以解决大家的问题,对大家有所帮助
工具/原料

Unity,Visual Studio

方法/步骤
1

解决办法1:摄像机的Tag由Main Camera改成Untagged。出现“Screen position out of view frustum (screen pos 256.000000, 0.000000, 15298.202148) (Camera rect 0 0 256 256)”错误提示的时候大多是因为Scence场景切换成了“2D”视图,而Main Camera属于3D 摄像机。但具体原因不明。

2

解决办法2:选中“Scene”标签,右键删除,即关闭当前的Scene窗口。然后通过添加窗口Add Tag-Scene,重新添加Scene标签。

3

解决办法3.检查摄像机的Size(摄像机的Projection选择为Orthographic时,才会有Size)的大小是否设置的太小或者直接就设置成0 了,增大Size可以解决问题;检查摄像机的Clipping Planes 的Near和Far参数,是否设置过小或者设置为0 了。默认值为Near为0.3,Far为1000

4

解决办法4:如果上述的办法已经解决了你的问题,你是幸运的。不过,我是那个不幸的,所以,就有了解决办法4。我的场景中异常提示设计到了Unity5自带的水预制体WaterProDaytime用到的脚本Water。为了解决问题,我开始从这个脚本入手,非常幸运的是我看到了一篇介绍关于WaterProDaytime使用注意事项的文章,上面提到,对于Orthographic相机,如果water在视截体内且water平面与相机视线平行,unity将报出“Screen position out of view frustum”这个error。

5

这是unity自已API的问题,完美的解决只能等官方修正。作者给出了脚本修正的提示,但是没有具体脚本。我的脚本编写能力有限,只能进行相机是否是透视的进行判断,但是可喜可贺,问题依然得到解决,最后一张示意图,展示了我修改后的脚本:添加判断条件 if (!cam.orthographic)                {                    refractionCamera.Render();                }

注意事项
1

如果喜欢本文可以点击下方的“收藏”和“关注”,也可以给作者投上宝贵的一票,您的支持将给作者莫大的动力 如果喜欢可以点击右边的两个箭头图标分享给好友

2

如果喜欢可以点击右边的两个箭头图标分享给好友

推荐信息