KitchenChaos/Assets/Scripts/UI/TutorialUI.cs

75 lines
2.9 KiB
C#

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);
}
}