UnityGameProjectsCode / AbandondedGame / GUIManager.cs
GUIManager.cs
Raw
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityStandardAssets.Characters.FirstPerson;

public class GUIManager : MonoBehaviour
{
    private GameObject[] objects;
    private bool startAnimsPlayed = false;
    private float waitTime;
    private GameManager gameMgr;

    private void Awake()
    {
        gameMgr = GetComponent<GameManager>();
    }

    private void Update()
    {
        if(startAnimsPlayed)
        {
            waitTime += Time.deltaTime;

            if (waitTime >= 1.0f)
            {
                if (objects[5].GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).IsName("Idle"))
                {
                    objects[4].SetActive(false);
                    objects[5].GetComponent<Camera>().depth = -1;
                    objects[5].GetComponent<Camera>().enabled = false;
                    objects[5].GetComponent<AudioListener>().enabled = false;
                    objects[8].SetActive(true);
                    objects[3].SetActive(true);
                    objects[20].SetActive(true);
                    startAnimsPlayed = false;
                    waitTime = 0.0f;

                    PlayDialogueTextAnim();
                    PlayObjectiveTextAnim();
                }
            }
        }
    }

    public void SetReferences()
    {
        objects = ReferenceManager.GetFullObjectList();
    }

    public void SetupGUIStart()
    {
        //turn off the main menu canvas and camera for testing gameplay
        objects[8].SetActive(false);
        objects[3].SetActive(false);
        objects[13].SetActive(false);
        objects[18].SetActive(false);
        objects[19].SetActive(false);
        objects[20].SetActive(false);
        objects[21].SetActive(false);
        Debug.Log("StartupGUI has been set");
    }

    public void SetObjectiveText(string text)
    {
        objects[1].GetComponent<TextMeshProUGUI>().text = text;
    }

    public void SetDialogueText(string text)
    {
        objects[12].GetComponent<TextMeshProUGUI>().text = text;
    }

    public void PlayDialogueTextAnim()
    {
        Animator anim = objects[11].GetComponent<Animator>();

        bool inIdle = anim.GetCurrentAnimatorStateInfo(0).IsName("Idle");

        if (inIdle)
            anim.Play("Dialogue Fade");
    }

    public void PlayObjectiveTextAnim()
    {
        Animator anim = objects[2].GetComponent<Animator>();

        bool inIdle = anim.GetCurrentAnimatorStateInfo(0).IsName("Idle");

        if(inIdle)
            anim.Play("Gradient Fade In");
    }

    public void StartGame()
    {
        objects[4].GetComponent<Animator>().Play("Main Menu Fade");
        objects[5].GetComponent<Animator>().Play("Menu Camera Move");
        objects[21].SetActive(true);

        startAnimsPlayed = true;
    }

    public void OnGameOver()
    {
        objects[13].SetActive(true);
    }

    public void OnGameReset()
    {
        objects[4].SetActive(true);
        objects[5].GetComponent<Camera>().enabled = true;
        objects[5].GetComponent<Camera>().depth = 1;
        objects[5].GetComponent<AudioListener>().enabled = true;
        objects[4].GetComponent<Animator>().Play("Main Menu Fade In");
    }

    public void SetVehicleEscapeMenuState(bool state)
    {
        objects[18].SetActive(state);

        if (state)
        {
            objects[8].GetComponent<FirstPersonController>().enabled = false;
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible = true;
            Time.timeScale = 0f;
        }
        else
        {
            objects[8].GetComponent<FirstPersonController>().enabled = true;
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible = false;
            Time.timeScale = 1f;
        }
    }

    public void OpenEscapeMenu()
    {
        objects[19].SetActive(true);
        objects[8].GetComponent<FirstPersonController>().enabled = false;
        Cursor.lockState = CursorLockMode.None;
        Cursor.visible = true;
        Time.timeScale = 0f;
    }

    public void CloseEscapeMenu()
    {
        objects[19].SetActive(false);
        objects[8].GetComponent<FirstPersonController>().enabled = true;
        gameMgr.SetEnemiesSoundState(true);
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
        Time.timeScale = 1f;
    }

    public bool GetEscapeMenuState()
    {
        return objects[19].activeSelf;
    }

    public bool GetMainMenuState()
    {
        return objects[4].activeSelf;
    }

    public bool GetVehicleMenuState()
    {
        return objects[18].activeSelf;
    }
}