/// <summary> /// Removes a game state from the list of prerequisite game states. /// </summary> /// <param name="gameState">The game state to remove.</param> protected void RemoveRequiredGameState(GameStateName gameState) { if (!nodeCanvas.requiredGameStates.Contains(gameState)) { return; } nodeCanvas.requiredGameStates.Remove(gameState); }
/// <summary> /// Adds a game state to the list of prerequisite game states. /// </summary> /// <param name="gameState">The game state to add.</param> protected void AddRequiredGameState(GameStateName gameState) { if (nodeCanvas.requiredGameStates.Contains(gameState)) { return; } nodeCanvas.requiredGameStates.Add(gameState); }
///TODO consider switching this to a more intelligent state machine ///state names given in GameStateName enum ///for each state trigger OnEnter####State and OnExit#####State ///when state is entered, trigger OnEnter####State() ///this should include storing the state ///when new state is entered, trigger OnExit for the old state (if it exists) ///TryChangeGameState() should take statename and use this to select the relevant entry and exit methods - this removes the switching needed in other classes. public void TryChangeGameState(GameStateName newGameState) { if (newGameState != gameState) { gameState = newGameState; onGameStateChange?.Invoke(gameState); Debug.Log("new game state:" + gameState); } }
private void GameStateSwitcher(GameStateName state) { if (state == GameStateName.Initialising) { Initialise(); } if (state == GameStateName.Selection1) { //wait } }
private void GameStateSwitcher(GameStateName state) { if (state == GameStateName.Initialising) { ToggleButtons(false); } if (state == GameStateName.Selection1) { ToggleButtons(true); } if (state == GameStateName.Selection2) { ToggleButtons(false); } }
private void AddNewState() { GameStateName temp = ScriptableObject.CreateInstance <GameStateName>(); gameStateAsset.gameStates.Add(temp); }
private void Initialise(GameStateName state) { ToggleVisibility(false); }