MIF_E31222398/Assets/Script/UIManager.cs

50 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class UIManager : MonoBehaviour
{
public GameObject damageTextPrefab;
public GameObject healthPrefab;
public Canvas gameCanvas;
private void Awake()
{
gameCanvas = FindAnyObjectByType<Canvas>();
}
private void OnEnable()
{
CharacterEvents.characterDamaged += CharacterTookDamage;
CharacterEvents.characterHealed += CharacterHealed;
}
private void OnDisable()
{
CharacterEvents.characterDamaged -= CharacterTookDamage;
CharacterEvents.characterHealed -= CharacterHealed;
}
public void CharacterTookDamage(GameObject character, int damageReceived)
{
// create text at character hit
Vector3 spamPosition = Camera.main.WorldToScreenPoint(character.transform.position);
TMP_Text tmpText = Instantiate(damageTextPrefab, spamPosition, Quaternion.identity, gameCanvas.transform).GetComponent<TMP_Text>();
tmpText.text = damageReceived.ToString();
}
public void CharacterHealed(GameObject character, int healthRestored)
{
// create text at character healed
Vector3 spamPosition = Camera.main.WorldToScreenPoint(character.transform.position);
TMP_Text tmpText = Instantiate(healthPrefab, spamPosition, Quaternion.identity, gameCanvas.transform).GetComponent<TMP_Text>();
tmpText.text = healthRestored.ToString();
}
}