当gameObjects位于摄影机的视野/ UNITY上时,不会调用OnBecameVisible()

时间:2019-03-04 20:21:53

标签: c# android unity3d optimization occlusion

我想通过不显示不在摄像机视野中的gameObjects来优化我的手机游戏。我无法进行遮挡剔除,因为这些游戏对象是实例化的并且不是静态的。

所以我用

void OnBecameInvisible(){  Renderer.enabled = false; }

void OnBecameVisible(){  Renderer.enabled = true; }

它起作用了,但是有时对象仍然不可见。

我尝试使用:

void Update()
{
    if (m_Renderer.isVisible)
    {
        m_Renderer.enabled = true;
        Debug.Log("show");
    }
    else m_Renderer.enabled = false; Debug.Log("not show");
}

但是性能严重下降。

我该如何解决?

谢谢。问候。

1 个答案:

答案 0 :(得分:1)

Unity默认情况下会自动使用Frustum Culling,并且不会渲染相机没有看的东西。因此,这是自动实现的