diff --git a/Engine.Core/GameManager.cs b/Engine.Core/GameManager.cs index 4aa725a..5aa3bd0 100644 --- a/Engine.Core/GameManager.cs +++ b/Engine.Core/GameManager.cs @@ -49,8 +49,8 @@ public class GameManager : BaseEntity, IGameManager if (!hierarchyObject.Initialize()) throw new Exception($"{hierarchyObject.Name} can't be initialized"); - foreach (IHierarchyObject child in hierarchyObject.Children) - Register(child); + for (int i = 0; i < hierarchyObject.Children.Count; i++) + Register(hierarchyObject.Children[i]); _hierarchyObjects.Add(hierarchyObject); @@ -75,8 +75,8 @@ public class GameManager : BaseEntity, IGameManager hierarchyObject.OnFinalized -= OnHierarchyObjectFinalize; hierarchyObject.OnExitedHierarchy -= OnHierarchyObjectExitedHierarchy; - foreach (IHierarchyObject child in hierarchyObject.Children) - Remove(child); + for (int i = hierarchyObject.Children.Count - 1; i >= 0; i--) + Remove(hierarchyObject.Children[i]); _hierarchyObjects.Remove(hierarchyObject); hierarchyObject.SetParent(null);