Unity(四) Orthographic Camera正交相机的Size

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LinZhonglong/article/details/78548400

PS:最近在开发游戏中使用到了正交相机作为俯视视角,需要换算所拍摄的区域,这样控制它移动不超出场景边界也避免拍摄场景外的东西,感谢给予思路的其他作者

链接1:http://blog.csdn.net/u012169685/article/details/51142839  Unity 3D 正交(Orthographic)摄像机尺寸学习笔记


Unity正交相机官方介绍 https://docs.unity3d.com/Manual/2Dor3D.html


正交相机:拉近拉远不会有近大远小现象,立体感更明显。Size类同于透视相机的FOV,不过它却代表了当前相机显示在屏幕的竖直方向上所绘制出来的区域的一半,举个栗子来说,Size=50,在场景中竖直方向所绘制的距离就是100个Unity单位。这里的相机Size可不等于Screen.Height/2,你可以改变Game视图的大小结合Debug看出。但是分辨率却是可定的值,例如我们选择16:10或其他


如图表明:相机Size=50绘制出了场景宽度*5的区域,刚好在屏幕的竖直方向把场景的宽完整显示出


那么相机在垂直地面的情况下,根据当前坐标可以获得上下移动的限制范围,如有倾斜再计算tan或sin


根据当前屏幕的分辨率Screen.width/Screen.Height宽高比,换算出实际在场景中绘制出的 拍摄的长度/Size*2(长宽比)

那么在Size不变的情况下,场景的上下左右坐标为已知,根据相机坐标以及拍摄区域的面积不难得出可移动的左右范围

Size若变同理可得


总结:

  正交相机的Size定义了它所拍摄的一个宽度区域,size*2把在Unity拍摄区域对象竖直方向的长显示在了屏幕上=Unity的单位长,拍摄面积的长度值需要根据屏幕的分辨率再次换算

这里均未采用像素换算,因为只是场景,如果是UI仍需要换算屏幕像素,我偷懒了嘿嘿


重复看了几遍人家写的文章结合实验终于发现了这点东西,果然是要书读百遍昂!



欢迎指正,共同交流!


猜你喜欢

转载自blog.csdn.net/LinZhonglong/article/details/78548400
今日推荐