一、前言
使用相机制作小地图时,发现Unity的Camera的投影(Projection)设置有如下两种,正交(Orthographic)和透视(Perspective)。
二、透视(Perspective)
透视模式下的话,摄像机是以一个角度(Field of View),扩散观察。被观察的物体会因离摄像机的远近,而导致最终显示在屏幕的大小位置不同。物体旋转会有离摄像机近的部位显示的偏大,远的部位偏小的效果(3D效果)。本项目暂未涉及,不详细写了。
三、正交(Orthographic)
摄像机是以一个固定的大小(Size),平行观察。被观察的物体不会因离摄像机的远近,而导致最终显示在屏幕的大小位置不同。物体旋转的话,在屏幕上的效果只会边长或变短,并不会有前大后小的效果(2D效果)
可以看到,修改size的值时,摄像机所看到的范围会发生变化
size的值是正交摄像机高度的一半。当你拉伸屏幕窗口的时候,摄像机的高度不变,宽度改变。比如,我们Size设置的为7,表示屏幕的高度为14unit。
四、实际操作
通过如下代码放大缩小相机size
public void ChangeMapSize(float value)
{
mapSize += value;
mapSize = Mathf.Clamp(mapSize, minSize, maxSize);
minicamera.orthographicSize = mapSize;
}
五、遇到的问题
做相关小地图之前,未了解相关摄像机分为正交透视两种,所以无论如何查找bug,仍然无法进行小地图缩小放大的修改,后来通过查找相关资料,了解到相机的Orthographic Size。接下来在2d下操作,多次测试修改camera_map的orthographic的size值,最终实现。