新年第一篇 之 (摄像机可视区域)

有一段时间没上博客了,今天说下 摄像机 可视区域,一般用这个的,都是为了 固定范围,或者让不可视地方 删除,提高性能。

之前雨凇有一篇 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);
    }
}

  

posted on 2017-01-11 12:54  太粗难进  阅读(430)  评论(0编辑  收藏  举报