Unity中的相机大家肯定都十分熟悉,主要有两种摄像机,即透视摄像机(Perspective)和正交摄像机(Orthographic)。
正交相机适用于做2D用途。正交相机有两个特别的属性Size和Aspect;
Size:正交摄像机显示高度
Aspect:摄像机显示区域的宽、高比
根据上面属性可以计算正交相机渲染画面的大小:
camera.height=camera.orthographicSize*2f
camera.width=camera.height*camera.aspect
包围盒算法是一种求离散点集最优包围空间的方法,基本思想就是用体积稍大且特性简单的几何体(包围盒)来近似地代替复杂的集合对象。
如下图,三个物体的包围盒。
计算方案:
求得物体(组)的正交投影范围;
移动正交相机到物体组上方的中心位置,并自动调整Size。
Unity中的包围盒用结构体——Bounds来表示
public GameObject obj;//要包围的物体
public Camera setCamera;//正交相机
public float ScreenScaleFactor;//占屏比例系数
private void Start()
{
var bound = GetBoundPo