using System; using UnityEngine; using TMPro; namespace SoulCoreGameLoop.UI { [RequireComponent(typeof(Animator))] public class MessageBox : MonoBehaviour, IUIEventSender { private static readonly int TriggerPlay = Animator.StringToHash("Play"); public TMP_Text messageText; private Animator _animator; private void Awake() { _animator = GetComponent(); UIEventListener.Register(this); } private void OnDestroy() => UIEventListener.Unregister(); public void OnReceive(Message evt) { messageText.text = evt.MessageText; _animator.SetTrigger(TriggerPlay); } } public struct Message { public readonly string MessageText; public Message(string messageText) { MessageText = messageText; } } }