creative-jam-20/Assets/Scripts/GameManager.cs
Soulaha Balde ba99bbb4f0 Add MainMenu and pause menu
Transitions between menus work
2022-05-14 23:16:48 -04:00

59 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.InputSystem;
public class GameManager : MonoBehaviour
{
[SerializeField] private PlayerInput _controls;
[SerializeField, ReadOnly] private GameState _state;
[SerializeField] private UIController ui;
public static GameManager Instance { get; private set; }
private void Awake()
{
if (Instance != null && Instance != this)
{
Destroy(gameObject);
}
else
{
Instance = this;
_state = GameState.InGame;
}
}
public void TriggerGameOver(int dimensionID)
{
if (_state == GameState.Loss) return;
// Stop controls
_controls.SwitchCurrentActionMap("UI");
// Show Game Over Message
Debug.Log("Game Over: Dimension " + dimensionID + " has been destroyed");
// Show Options (Return to Menu / Retry)
_state = GameState.Loss;
}
public void EnterPause(){
_controls.SwitchCurrentActionMap("UI");
_state = GameState.Pause;
ui.EnterPause();
}
public void ExitPause(){
_controls.SwitchCurrentActionMap("Player");
_state = GameState.InGame;
ui.ExitPause();
}
}
public enum GameState
{
MainMenu,
InGame,
Loss,
Pause
}