1、先声明我们的变量:
<span style="font-size:14px;">/// <summary> /// isRender 为true则表示在摄像机内,为false则相反 /// </summary> private bool isRender; private float lastTime; private float currentTime; /// <summary> /// controlUpdate 控制update内isRender为false时的开关 /// </summary> private bool controlUpdate;</span>
2、写一个方法对这些变量进行初始化:
<span style="font-size:14px;">void Init() { controlUpdate = false; isRender = true; lastTime = 0; currentTime = 0; }</span>
并在Start()函数中调用
3、在OnWillRenderObject()函数中对currentTime进行赋值:
void OnWillRenderObject() { if (Camera.current.name == Camera.main.name)//是需要渲染的摄像机 { currentTime = Time.time; } }
点击 查看文档可对OnWillRenderObject() 做进一步了解
4、最后在Update函数中对lastTime赋值并对isRender进行判断:
void Update() { if (!controlUpdate && currentTime != 0) { isRender = currentTime != lastTime ? true : false; lastTime = currentTime; if (!isRender) { controlUpdate = true; //TODO: } } }
5、最后也可以再写一个函数来对脱离摄像机渲染的物体进行其它操作,比如为了对内存的考虑,对不需要用到的物体进行销毁。
时间: 2024-11-01 21:03:47