fix: removing an object from hierarchy setting all children's parents null

This commit is contained in:
2025-04-11 23:28:46 +03:00
parent 193d23c877
commit 4081693d32
3 changed files with 6 additions and 4 deletions

View File

@@ -68,6 +68,12 @@ public class GameManager : BaseEntity, IGameManager
}
public void Remove(IHierarchyObject hierarchyObject)
{
hierarchyObject.SetParent(null);
RemoveIncursive(hierarchyObject);
}
private void RemoveIncursive(IHierarchyObject hierarchyObject)
{
if (!_hierarchyObjects.Contains(hierarchyObject))
throw new Exception($"{nameof(IHierarchyObject)} named {hierarchyObject.Name} is not registered to the {nameof(GameManager)}.");
@@ -79,7 +85,6 @@ public class GameManager : BaseEntity, IGameManager
Remove(hierarchyObject.Children[i]);
_hierarchyObjects.Remove(hierarchyObject);
hierarchyObject.SetParent(null);
if (!hierarchyObject.ExitHierarchy())
throw new Exception($"{hierarchyObject.Name} can't exit the hierarchy");