protected virtual void ConfirmExitState()
 {
     // CustomLogger.Log(this.name, $"Exiting game state {StateId}");
     IsLoading = false;
     IsActive  = false;
     Active    = false;
     DisposeManagers();
     DeregisterPooledObjectPrefabs();
     DeregisterUIPrefabs();
     OnGameStateExit?.Invoke();
 }
 public void AddOnGameStateExit(OnGameStateExit func)
 {
     gameStateExitWatchers += func;
 }
 public void RemoveOnGameStateExit(OnGameStateExit func)
 {
     gameStateExitWatchers -= func;
 }
 private void OnDisable()
 {
     SetCurrentGameState(GameState.Disabled);
     gameStateEnterWatchers = null;
     gameStateExitWatchers  = null;
 }