UnityGameProjectsCode / InTheDarkGame / Managers / GameManager.cs
GameManager.cs
Raw
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour
{
    private ReferenceManager refMgr;
    private GUIManager guiMgr;
    private GameObject playerObject;
    private Scene currentScene;

    private void Awake()
    {
        refMgr = GetComponent<ReferenceManager>();
        guiMgr = GetComponent<GUIManager>();
        InputManager.SetupKeys();
    }

    private void Start()
    {
        SceneManager.sceneLoaded += OnSceneLoaded;
    }

    private void Update()
    {
        if (playerObject != null)
        {
            bool deathState = playerObject.GetComponent<Health>().GetPlayerDeathState();

            if (deathState)
            {
                OnPlayerDeath();
            }
        }
    }

    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        currentScene = SceneManager.GetActiveScene();

        if (currentScene.buildIndex != 0)
        {
            playerObject = GameObject.Find("Player Object");
        }
    }

    public string GetCurrentSceneName()
    {
        return currentScene.name;
    }

    public void OnPlayerDeath()
    {
        guiMgr.ChangeDeathScreenState(true);
    }
}