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; } }