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只应渲染摄影机可见的网格。。。