void UpdateVisibleNode(int index) { if (!GoablEnabledOcclusCulling) { return; } SceneResInfo res = NotCullList[index]; if (res) { if (res.NotCullDataIndex > 0) { NotCullTimer[res.NotCullDataIndex] += Time.deltaTime; float alvieTime = NotCullTimer[res.NotCullDataIndex]; bool NeedToClear = false; if (alvieTime > DealyRestTime) { DoCull(res); NeedToClear = true; } res.ApplyCullVisible(); if (NeedToClear) { NotCullList[index] = null; } } res.EnableCullingCheck(); } }
void DoCull(SceneResInfo res) { if (!GoablEnabledOcclusCulling) { return; } if (res.NotCullDataIndex >= 0) { NotCullEmptyIndexList.Enqueue(res.NotCullDataIndex); res.NotCullDataIndex = -1; } res.Cull(); res.EnableCullingCheck(); }