feat: Improved Entering & Exiting of Hierarchy Objects
This commit is contained in:
@@ -124,21 +124,19 @@ public abstract class HierarchyObjectBase : IHierarchyObject
|
||||
|
||||
_gameManager = gameManager;
|
||||
OnEnteringHierarchy(gameManager);
|
||||
OnEnteredHierarchy?.Invoke(this);
|
||||
OnEnteredHierarchy?.Invoke(this, gameManager);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected virtual void OnExitingHierarchy(IGameManager gameManager) { }
|
||||
bool IHierarchyObject.ExitHierarchy()
|
||||
{
|
||||
if (!IsInHierarchy)
|
||||
if (!IsInHierarchy || _gameManager is not IGameManager gameManager)
|
||||
return false;
|
||||
|
||||
IGameManager? previousGameManager = _gameManager;
|
||||
_gameManager = null;
|
||||
if (previousGameManager is not null)
|
||||
OnExitingHierarchy(previousGameManager);
|
||||
OnExitedHierarchy?.Invoke(this);
|
||||
OnExitingHierarchy(gameManager);
|
||||
OnExitedHierarchy?.Invoke(this, gameManager);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user