KitchenChaos/Assets/Scripts/UI/TutorialUI.cs

60 lines
2.5 KiB
C#

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