fix: removing an object from hierarchy setting all children's parents null
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user