public bool UpdateCollisionGeometry() { // Release the collider when no longer needed if (!NeedsCollider) { stateManager.SetColliderBuilt(); ChunkColliderGeometryHandler.Reset(); return(false); } // Build collision geometry only if there is enough time if (!Globals.GeometryBudget.HasTimeBudget) { return(false); } // Build collider if necessary if (stateManager.IsStateCompleted(ChunkStates.CurrStateBuildCollider)) { Profiler.BeginSample("UpdateCollisionGeometry"); Globals.GeometryBudget.StartMeasurement(); stateManager.SetColliderBuilt(); ChunkColliderGeometryHandler.Commit(); Globals.GeometryBudget.StopMeasurement(); Profiler.EndSample(); return(true); } return(false); }
public bool UpdateCollisionGeometry() { // Release the collider when no longer needed if (!NeedsCollider) { stateManager.SetColliderBuilt(); ChunkColliderGeometryHandler.Reset(); return(false); } // Build collider if necessary if (stateManager.IsStateCompleted(ChunkState.BuildCollider)) { stateManager.SetColliderBuilt(); ChunkColliderGeometryHandler.Commit(); return(true); } return(false); }