标签:unity c# onwillrenderobject
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><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、最后也可以再写一个函数来对脱离摄像机渲染的物体进行其它操作,比如为了对内存的考虑,对不需要用到的物体进行销毁。
标签:unity c# onwillrenderobject
原文地址:http://blog.csdn.net/u014076894/article/details/45581541