C# 当摄影机不可见时禁用网格渲染器

C# 当摄影机不可见时禁用网格渲染器,c#,unity3d,C#,Unity3d,为了节省内存,我想禁用摄影机看不到的游戏对象的网格渲染器集。到目前为止,我有以下脚本: private MeshRenderer rend; void Start() { rend = GetComponent<MeshRenderer>(); } public void OnBecameVisible() { rend.enabled = true; }

为了节省内存,我想禁用摄影机看不到的游戏对象的网格渲染器集。到目前为止,我有以下脚本:

     private MeshRenderer rend;


     void Start()
     {
         rend = GetComponent<MeshRenderer>();
     }  


     public void OnBecameVisible()
     {
         rend.enabled = true;
     }


     public void OnBecameInvisible()
     {
         rend.enabled = false;
     }

private-mesh-rend;
void Start()
{
rend=GetComponent();
}  
公共无效OnBecameVisible()
{
rend.enabled=true;
}
公开无效,不可见()
{
rend.enabled=false;
}

正在调用
OnBecameVisible()
,但只调用了一次
OnBecameVisible()
?是因为网格渲染器已关闭吗?如果是这样的话,有没有其他解决方案可以让它恢复?

遮挡剔除……。@BugFinder请您解释一下。我对遮挡消隐的主题还不熟悉。将对象设置为遮挡/遮挡(sp?)静态,打开消隐,这也适用于动态放置的对象,请参见magicoclusion:blocking。剔除:移除。遮挡剔除:“删除被遮挡的对象”。换句话说:如果某个对象不可见,请不要渲染它。禁用渲染器后,该对象不可能再次可见;)你为什么需要这个?默认情况下,Unity只应渲染摄影机可见的网格。。。