using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.SceneManagement; public class UIManager : MonoBehaviour { public GameObject damageTextPrefab; public GameObject healthTextPrefab; public Canvas gameCanvas; private void Awake() { gameCanvas = FindObjectOfType(); } private void OnEnable() { // add listen events CharacterEvents.characterDamaged += (CharacterTookDamange); CharacterEvents.characterHealed += (CharacterHealed); } private void OnDisable() { // remove listen events CharacterEvents.characterDamaged -= (CharacterTookDamange); CharacterEvents.characterHealed -= (CharacterHealed); } public void CharacterTookDamange(GameObject character, int damageReceived) { // Create damage text at character Vector3 spawnPosition = Camera.main.WorldToScreenPoint(character.transform.position); TMP_Text tmpText = Instantiate(damageTextPrefab, spawnPosition, Quaternion.identity, gameCanvas.transform).GetComponent(); tmpText.text = damageReceived.ToString(); } public void CharacterHealed(GameObject character, int healthRestored) { // Create heal text at character Vector3 spawnPosition = Camera.main.WorldToScreenPoint(character.transform.position); TMP_Text tmpText = Instantiate(healthTextPrefab, spawnPosition, Quaternion.identity, gameCanvas.transform).GetComponent(); tmpText.text = healthRestored.ToString(); } public void OnExitGame(InputAction.CallbackContext context) { if (context.started) { #if (UNITY_EDITOR || DEVELOPMENT_BUILD) Debug.Log(this.name + ": " + this.GetType() + ": " + System.Reflection.MethodBase.GetCurrentMethod().Name); #endif #if (UNITY_EDITOR) UnityEditor.EditorApplication.isPlaying = false; #elif (UNITY_STANDALONE) Application.Quit(); #elif (UNITY_WEBGL) // NOT WORKING // Need to add new scene "QuitScene" // change camera to solid color "black" // add scene to build settings // SceneManager.LoadScene("QuitScene"); #endif } } }