using System; using TMPro; using UnityEngine; using UnityEngine.Serialization; public class TutorialUI : MonoBehaviour { [FormerlySerializedAs("keyMoveUpText"), SerializeField] private TextMeshProUGUI KeyMoveUpText; [FormerlySerializedAs("keyMoveDownText"), SerializeField] private TextMeshProUGUI KeyMoveDownText; [FormerlySerializedAs("keyMoveLeftText"), SerializeField] private TextMeshProUGUI KeyMoveLeftText; [FormerlySerializedAs("keyMoveRightText"), SerializeField] private TextMeshProUGUI KeyMoveRightText; [FormerlySerializedAs("keyMoveInteractText"), SerializeField] private TextMeshProUGUI KeyMoveInteractText; [FormerlySerializedAs("keyMoveInteractAlternateText"), SerializeField] private TextMeshProUGUI KeyMoveInteractAlternateText; [FormerlySerializedAs("keyMovePauseText"), SerializeField] private TextMeshProUGUI KeyMovePauseText; [FormerlySerializedAs("keyMoveGamepadInteractText"), SerializeField] private TextMeshProUGUI KeyMoveGamepadInteractText; [FormerlySerializedAs("keyMoveGamepadInteractAlternateText"), SerializeField] private TextMeshProUGUI KeyMoveGamepadInteractAlternateText; [FormerlySerializedAs("keyMoveGamepadPauseText"), SerializeField] private TextMeshProUGUI KeyMoveGamepadPauseText; private void Start() { GameInput.Instance.OnBindingRebind += GameInput_OnBindingRebind; KitchenGameManager.Instance.OnStateChanged += KitchenGameManager_OnStateChanged; KitchenGameManager.Instance.OnLocalPlayerReadyChanged += KitchenGameManager_OnLocalPlayerReadyChanged; UpdateVisual(); Show(); } private void GameInput_OnBindingRebind(object sender, EventArgs e) => UpdateVisual(); private void KitchenGameManager_OnStateChanged(object sender, EventArgs e) { if (KitchenGameManager.Instance.IsCountToStartActive()) Hide(); } private void KitchenGameManager_OnLocalPlayerReadyChanged(object sender, EventArgs e) { if (KitchenGameManager.Instance.IsLocalPlayerReady) Hide(); } private void UpdateVisual() { KeyMoveUpText.text = GameInput.GetBindingText(GameInput.Binding.MoveUp); KeyMoveDownText.text = GameInput.GetBindingText(GameInput.Binding.MoveDown); KeyMoveLeftText.text = GameInput.GetBindingText(GameInput.Binding.MoveLeft); KeyMoveRightText.text = GameInput.GetBindingText(GameInput.Binding.MoveRight); KeyMoveInteractText.text = GameInput.GetBindingText(GameInput.Binding.Interact); KeyMoveInteractAlternateText.text = GameInput.GetBindingText(GameInput.Binding.InteractAlternate); KeyMovePauseText.text = GameInput.GetBindingText(GameInput.Binding.Pause); KeyMoveGamepadInteractText.text = GameInput.GetBindingText(GameInput.Binding.GamepadInteract); KeyMoveGamepadInteractAlternateText.text = GameInput.GetBindingText(GameInput.Binding.GamepadInteractAlternate); KeyMoveGamepadPauseText.text = GameInput.GetBindingText(GameInput.Binding.GamepadPause); } private void Show() { gameObject.SetActive(true); } private void Hide() { gameObject.SetActive(false); } }