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

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仍需要换算屏幕像素,我偷懒了嘿嘿


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



欢迎指正,共同交流!


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值