using Sirenix.OdinInspector; using TMPro; using UnityEngine; using UnityEngine.UI; namespace BlueWater.Uis { public class InteractionUi : MonoBehaviour { [SerializeField, Required] private GameObject _panel; [SerializeField] private Image _fillImage; [SerializeField, Required] private TMP_Text _keyText; [SerializeField, Required] private TMP_Text _interactionText; private void Start() { EventManager.OnShowInteractionUi += ShowUi; EventManager.OnHideInteractionUi += HideUi; EventManager.OnInteracting += SetFillAmount; } private void OnDestroy() { EventManager.OnShowInteractionUi -= ShowUi; EventManager.OnHideInteractionUi -= HideUi; EventManager.OnInteracting -= SetFillAmount; } public void ShowUi(string message) { _interactionText.text = message; _panel.SetActive(true); } public void HideUi() { _panel.SetActive(false); } private void SetFillAmount(float fillAmount) { _fillImage.fillAmount = fillAmount; } } }