feat: Improved Entering & Exiting of Hierarchy Objects

This commit is contained in:
2024-11-03 20:13:25 +03:00
parent cc44e1ea69
commit 4856800f5f
5 changed files with 23 additions and 19 deletions

View File

@@ -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;
}
}