internal void CheckMissingDependenciesForCollections(SubSystemBase sys) { if (m_collectionDependencies.Count > 0) { Debug.LogWarning( $"{sys} finished its update but there are ICollectionComponent instances, one of which was of type {m_collectionDependencies[0].type}, that were accessed but did not have their dependencies updated."); } }
internal void BeginCollectionTracking(SubSystemBase sys) { if (m_activeSystem != null) { throw new InvalidOperationException("Error: Calling Update on a SubSystem from within another SubSystem is not allowed!"); } m_activeSystem = sys; }
internal void EndCollectionTracking(JobHandle outputDeps) { m_activeSystem = null; if (outputDeps.IsCompleted) { //Todo: Is this necessary? And what are the performance impacts? Is there a better way to figure out that all jobs were using .Run()? outputDeps.Complete(); } else { UpdateCollectionDependencies(outputDeps); } }