using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using UnityEngine.SceneManagement; public class UIController : MonoBehaviour { [SerializeField] private TMP_Text pointsTxt; [SerializeField] private Text maxPointsTxt; [SerializeField] private HealthBar mainHealthBar; [SerializeField] private HealthBar[] verticalHealthBars; [SerializeField] private Color[] hpBarColorPerDimension; [SerializeField] private Transform gameoverPnl; public void UpdatePointsText(float points) { pointsTxt.text = points.ToString("0"); } public void SetCurrentDimension(int currentDimensionID, float currentDimensionHP, float currentDimensionMaxHP) { foreach (HealthBar verticalHealthBar in verticalHealthBars) { verticalHealthBar.SetVisible(true); } verticalHealthBars[currentDimensionID].SetVisible(false); mainHealthBar.SetFillingColor(hpBarColorPerDimension[currentDimensionID]); mainHealthBar.SetFillingAmount(currentDimensionHP / currentDimensionMaxHP); } public void SetDimensionHP(int currentDimensionID, int dimensionID, float hp, float maxHP) { float hpFillingAmount = hp / maxHP; verticalHealthBars[dimensionID].SetFillingAmount(hpFillingAmount); // Also change main HP bar if this is the current dimension. if (currentDimensionID == dimensionID) { mainHealthBar.SetFillingAmount(hpFillingAmount); } } public void UpdateMaxPointsText(float points) { maxPointsTxt.text = points.ToString("0"); } public void TriggerGameOver(){ gameoverPnl.gameObject.SetActive(!gameoverPnl.gameObject.activeSelf); } public void LoadMenu() { Time.timeScale = 1f; SoundManager.Instance.SwitchMusicLayer(-1); SceneManager.LoadScene(0); } public void RestartGame() { Time.timeScale = 1f; SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } public void QuitGame() { Debug.Log("QuitGame"); Application.Quit(); } }