UnityGameProjectsCode / InTheDarkGame / Managers / ReferenceManager.cs
ReferenceManager.cs
Raw
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class ReferenceManager : MonoBehaviour
{
    private List<GameObject> referenceObjects = new List<GameObject>();
    private GUIManager guiMgr;

    private void Awake()
    {
        guiMgr = GetComponent<GUIManager>();
    }

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

    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        for (int i = 1; i < referenceObjects.Count; i++)
        {
            referenceObjects.RemoveAt(i);
        }

        if (scene.name == "Main Menu")
        {
            SetMainMenuReferences();
        }
        else
        {
            SetLevelReferences();
        }
    }

    public void SendReferences()
    {
        References.SetReferences(referenceObjects);
    }

    public void SetMainMenuReferences()
    {
        SendReferences();
    }

    public void SetLevelReferences()
    {
        referenceObjects.Add(GameObject.Find("GamePlay UI"));
        referenceObjects.Add(GameObject.Find("Player Object"));
        referenceObjects.Add(GameObject.Find("Main Camera"));

        SendReferences();
    }
}