有一段时间没上博客了,今天说下 摄像机 可视区域,一般用这个的,都是为了 固定范围,或者让不可视地方 删除,提高性能。
之前雨凇有一篇 perspective 可视区域的代码。
我再补充一个 Orthographic 可视区域的。
先看 动态效果图
开头是 雨凇的 之后是 我的。慢慢看
然后就是 上代码
using UnityEngine;
using System.Collections;public class Cameras : MonoBehaviour
{ public GameObject mainCamera;float frustumHeight;float frustumWidth;void Start(){}void Update(){frustumHeight = mainCamera.GetComponent().orthographicSize * 2;frustumWidth = frustumHeight * mainCamera.GetComponent().aspect;Vector3 camerass = mainCamera.transform.position;Vector3 leftup = new Vector3(camerass.x - frustumWidth / 2.0f, camerass.y + frustumHeight / 2.0f, 100);Vector3 rigthup = new Vector3(camerass.x + frustumWidth / 2.0f, camerass.y + frustumHeight / 2.0f, 100);Vector3 leftdown = new Vector3(camerass.x - frustumWidth / 2.0f, camerass.y - frustumHeight / 2.0f, 100);Vector3 rigthdown = new Vector3(camerass.x + frustumWidth / 2.0f, camerass.y - frustumHeight / 2.0f, 100);Debug.DrawLine(leftup, rigthup, Color.yellow); // UpperLeft -> UpperRightDebug.DrawLine(rigthup, rigthdown, Color.yellow);Debug.DrawLine(rigthdown, leftdown, Color.yellow);Debug.DrawLine(leftdown, leftup, Color.yellow);}
}