OnBecameVisible() 当 gameObjects 在相机场上时不调用 / UNITY

OnBecameVisible() not call when gameObjects is on camera's field / UNITY

我想通过不显示不在相机视野中的游戏对象来优化我的手机游戏。我不能进行遮挡剔除,因为那些游戏对象是实例化的,而不是静态的。

所以我用了

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");
}

但是性能下降很厉害

我该如何解决?

谢谢。问候。

Unity 默认自动使用 Frustum Culling,并且不会渲染相机未注视的内容。因此这是自动实现的