fix: OnEnterHierarchy Not Being Called Correctly

This commit is contained in:
Syntriax 2024-11-03 19:58:57 +03:00
parent cb60c71184
commit cc44e1ea69
3 changed files with 10 additions and 7 deletions

View File

@ -29,7 +29,11 @@ public abstract class Behaviour : BehaviourBase
BehaviourController.OnUpdate += Update;
BehaviourController.GameObject.OnEnteredHierarchy += EnteredHierarchy;
BehaviourController.GameObject.OnExitedHierarchy += ExitedHierarchy;
OnInitialize();
if (GameObject.IsInHierarchy)
EnteredHierarchy(GameObject);
}
protected virtual void OnFinalize() { }

View File

@ -61,12 +61,12 @@ public class GameManager : BaseEntity, IGameManager
Register(gameObject);
else
{
if (!hierarchyObject.Initialize())
throw new Exception($"{nameof(hierarchyObject)} can't be initialized");
_hierarchyObjects.Add(hierarchyObject);
hierarchyObject.EnterHierarchy(this);
if (!hierarchyObject.Initialize())
throw new Exception($"{nameof(hierarchyObject)} can't be finalized");
OnHierarchyObjectRegistered?.Invoke(this, hierarchyObject);
}
}
@ -140,15 +140,15 @@ public class GameManager : BaseEntity, IGameManager
gameObject.OnFinalized += OnGameObjectFinalize;
gameObject.OnExitedHierarchy += OnGameObjectExitedHierarchy;
if (!gameObject.Initialize())
throw new Exception($"{nameof(gameObject)} can't be initialized");
_gameObjects.Add(gameObject);
_hierarchyObjects.Add(gameObject);
if (!gameObject.EnterHierarchy(this))
throw new Exception($"{nameof(gameObject)} can't enter the hierarchy");
if (!gameObject.Initialize())
throw new Exception($"{nameof(gameObject)} can't be initialized");
OnHierarchyObjectRegistered?.Invoke(this, gameObject);
OnGameObjectRegistered?.Invoke(this, gameObject);
}

View File

@ -46,7 +46,6 @@ public class GameObject : BaseEntity, IGameObject
NotAssignedException.Check(this, _transform);
NotAssignedException.Check(this, _behaviourController);
NotAssignedException.Check(this, _gameManager);
}
public void Update()