using UnityEngine; using UnityEngine.SceneManagement; public class UIManager : MonoBehaviour { private GameObject runningUI; private GameObject finishUI; private GameObject escapeUI; private GameObject startUI; private GameObject deathUI; private GameObject commandMenu; private GameObject subCommMenu; private GameObject subCommMenu1; private GameObject subCommMenu2; private GameObject loadoutUI; private GameObject inventoryUI; private GameObject missionUI; private GameManager gameManager; private SoundManager soundManager; private GameObject escapeText; private GameObject escapeBars; public bool objectsSet; public bool hubObjectsSet; public bool escapeMenuOpen; public bool commandMenuOpen; private Cinemachine.CinemachineBrain virtCam; private void Awake() { gameManager = GetComponent<GameManager>(); soundManager = GetComponent<SoundManager>(); } void Update() { Scene scene = SceneManager.GetActiveScene(); if (scene.name != "HUB scene" && scene.name != "Main Menu") { if (!startUI.activeSelf) { if (!escapeMenuOpen && Input.GetButtonDown("Escape")) { if (!escapeUI.activeSelf) { escapeUI.SetActive(true); gameManager.PauseBots(); gameManager.PausePlayer(); escapeMenuOpen = true; } } else if (escapeMenuOpen && Input.GetButtonDown("Escape")) { if (escapeUI.activeSelf) { escapeUI.SetActive(false); gameManager.UnPauseBots(); gameManager.UnPausePlayer(); escapeMenuOpen = false; } } if (!commandMenuOpen && Input.GetButtonDown("Open AI Command Menu")) { if (!commandMenu.activeSelf) { commandMenu.SetActive(true); commandMenuOpen = true; } } else if (commandMenuOpen && Input.GetButtonDown("Open AI Command Menu")) { if (commandMenu.activeSelf) { commandMenu.SetActive(false); commandMenuOpen = false; } } if ((subCommMenu1.activeSelf || subCommMenu2.activeSelf) && Input.GetButtonDown("Open AI Command Menu")) { subCommMenu.SetActive(true); subCommMenu1.SetActive(false); subCommMenu2.SetActive(false); } } else { gameManager.PauseBots(); if (Input.anyKeyDown) { startUI.SetActive(false); gameManager.UnPauseBots(); gameManager.OnMissionStart(); } } } } public void OnLevelLoad(Scene scene) { if (scene.name != "HUB scene" && scene.name != "Main Menu") { runningUI = GameObject.Find("RunningUI"); finishUI = GameObject.Find("FinishUI"); escapeUI = GameObject.Find("EscapeUI"); startUI = GameObject.Find("StartUI"); deathUI = GameObject.Find("DeathUI"); escapeText = GameObject.Find("RunningUI/Escape Text"); escapeBars = GameObject.Find("RunningUI/Escape Bars"); commandMenu = GameObject.Find("RunningUI/Commands Group"); subCommMenu = GameObject.Find("RunningUI/Commands Group/Command Panel"); subCommMenu1 = GameObject.Find("RunningUI/Commands Group/Command Sub-Panel"); subCommMenu2 = GameObject.Find("RunningUI/Commands Group/Command Context Panel"); virtCam = Camera.main.gameObject.GetComponent<Cinemachine.CinemachineBrain>(); RunningUISet(); escapeMenuOpen = false; } if (scene.name == "HUB scene") { missionUI = GameObject.Find("HUBUI/Missions Panel"); loadoutUI = GameObject.Find("HUBUI/Loadout Panel"); inventoryUI = GameObject.Find("HUBUI/Inventory Panel"); } } public void EscapeTrigger() { escapeText.SetActive(true); escapeBars.SetActive(true); } public void FinishScreen() { runningUI.SetActive(false); finishUI.SetActive(true); gameManager.PauseBots(); gameManager.PausePlayer(); } public void PlayerDeath() //called when player dies or the objective is failed { deathUI.SetActive(true); virtCam.gameObject.GetComponent<AudioListener>().enabled = true; if (gameManager.playerObject.activeSelf) gameManager.playerObject.GetComponent<AudioListener>().enabled = false; gameManager.PauseBots(); if (gameManager.playerObject.activeSelf) //if the player is not dead, pause them gameManager.PausePlayer(); } public void HUBUISet() { loadoutUI.SetActive(false); inventoryUI.SetActive(false); } public void RunningUISet() { escapeText.SetActive(false); escapeBars.SetActive(false); commandMenu.SetActive(false); finishUI.SetActive(false); escapeUI.SetActive(false); deathUI.SetActive(false); } public GameObject GetInventoryPanel() { return inventoryUI; } }