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<Canvas>();
|
}
|
|
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<TMP_Text>();
|
|
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<TMP_Text>();
|
|
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
|
}
|
}
|
}
|