miepzerino
2023-12-16 d95020b910bc69ab733f87d5d0238fe2d1164590
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
        }
    }
}