新年第一篇 之 (摄像机可视区域)
有一段时间没上博客了,今天说下 摄像机 可视区域,一般用这个的,都是为了 固定范围,或者让不可视地方 删除,提高性能。
之前雨凇有一篇 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<Camera>().orthographicSize * 2; frustumWidth = frustumHeight * mainCamera.GetComponent<Camera>().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 -> UpperRight Debug.DrawLine(rigthup, rigthdown, Color.yellow); Debug.DrawLine(rigthdown, leftdown, Color.yellow); Debug.DrawLine(leftdown, leftup, Color.yellow); } }