using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class TutorialUI : MonoBehaviour { [SerializeField] private TextMeshProUGUI keyMoveUpText; [SerializeField] private TextMeshProUGUI keyMoveDownText; [SerializeField] private TextMeshProUGUI keyMoveLeftText; [SerializeField] private TextMeshProUGUI keyMoveRightText; [SerializeField] private TextMeshProUGUI keyMoveInteractText; [SerializeField] private TextMeshProUGUI keyMoveInteractAlternateText; [SerializeField] private TextMeshProUGUI keyMovePauseText; [SerializeField] private TextMeshProUGUI keyMoveGamepadInteractText; [SerializeField] private TextMeshProUGUI keyMoveGamepadInteractAlternateText; [SerializeField] private TextMeshProUGUI keyMoveGamepadPauseText; private void Start() { GameInput.Instance.OnBindingRebind += GameInput_OnBindingRebind; KitchenGameManager.Instance.OnStateChanged += KitchenGameManager_OnStateChanged; UpdateVisual(); Show(); } private void GameInput_OnBindingRebind(object sender, System.EventArgs e) => UpdateVisual(); private void KitchenGameManager_OnStateChanged(object sender, System.EventArgs e) { if (KitchenGameManager.Instance.IsCountToStartActive()) { Hide(); } } private void UpdateVisual() { keyMoveUpText.text = GameInput.Instance.GetBindingText(GameInput.Binding.MoveUp); keyMoveDownText.text = GameInput.Instance.GetBindingText(GameInput.Binding.MoveDown); keyMoveLeftText.text = GameInput.Instance.GetBindingText(GameInput.Binding.MoveLeft); keyMoveRightText.text = GameInput.Instance.GetBindingText(GameInput.Binding.MoveRight); keyMoveInteractText.text = GameInput.Instance.GetBindingText(GameInput.Binding.Interact); keyMoveInteractAlternateText.text = GameInput.Instance.GetBindingText(GameInput.Binding.InteractAlternate); keyMovePauseText.text = GameInput.Instance.GetBindingText(GameInput.Binding.Pause); keyMoveGamepadInteractText.text = GameInput.Instance.GetBindingText(GameInput.Binding.Gamepad_Interact); keyMoveGamepadInteractAlternateText.text = GameInput.Instance.GetBindingText(GameInput.Binding.Gamepad_InteractAlternate); keyMoveGamepadPauseText.text = GameInput.Instance.GetBindingText(GameInput.Binding.Gamepad_Pause); } private void Show() { gameObject.SetActive(true); } private void Hide() { gameObject.SetActive(false); } }