using Sirenix.OdinInspector; using UnityEngine; namespace BlueWater.Uis { public enum TutorialState { None = 0, First, Second, End } public class CombatTutorialUi : MonoBehaviour { private static bool _isCompletedTutorial; [SerializeField] private GameObject _firstTutorialUi; [SerializeField] private GameObject _secondTutorialUi; public TutorialState CurrentTutorialState { get; private set; } [Button("컴포넌트 초기화")] private void InitializeComponents() { _firstTutorialUi = transform.Find("FirstTutorialUi").gameObject; _secondTutorialUi = transform.Find("SecondTutorialUi").gameObject; } public void ShowFirstTutorialUi() { if (_isCompletedTutorial) return; PlayerInputKeyManager.Instance.DisableAllActionMaps(); gameObject.SetActive(true); _firstTutorialUi.SetActive(true); _secondTutorialUi.SetActive(false); CurrentTutorialState = TutorialState.First; Invoke(nameof(FirstTutorialCoroutine), 0.1f); } private void FirstTutorialCoroutine() { PlayerInputKeyManager.Instance.EnableCurrentPlayerInput(); PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.CombatUi); PlayerInputKeyManager.Instance.DisableAllActionsExcept("InteractionUi"); } public void SecondFirstTutorialUi() { gameObject.SetActive(true); _firstTutorialUi.SetActive(false); _secondTutorialUi.SetActive(true); CurrentTutorialState = TutorialState.Second; } public void EndTutorialUi() { gameObject.SetActive(false); _firstTutorialUi.SetActive(false); _secondTutorialUi.SetActive(false); CurrentTutorialState = TutorialState.End; _isCompletedTutorial = true; PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Combat); //PlayerInputKeyManager.Instance.EnableAllActions(); //CombatUiManager.Instance.MoveSelectStage((int)SaveStage.FirstTutorial); } } }