CapersProject/Assets/02.Scripts/Ui/CombatTutorialUi.cs
Nam Tae Gun 7f021541d6 #1 시작할 때, Key Action이 전부 활성화되는 버그 수정
- 1.7.0 Input System에서는 문제 없다가 1.8.2로 업그레이드되면서 처음 PlayerInput의 모든 Action이 Enable되는 현상이 생겼습니다.
- CombatPlayer프리팹에서 PlayerInput컴포넌트를 비활성화 하고, 생성과 동시에 활성화합니다.
- 첫 번째 튜토리얼에 진입하는 순간, 키 입력을 순간적으로 비활성화하고 되돌립니다.

Closes #1
2024-06-04 22:15:14 +09:00

71 lines
2.2 KiB
C#

using System.Collections;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Uis
{
public enum TutorialState
{
None = 0,
First,
Second,
End
}
public class CombatTutorialUi : MonoBehaviour
{
[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()
{
PlayerInputKeyManager.Instance.DisableCurrentPlayerInput();
gameObject.SetActive(true);
_firstTutorialUi.SetActive(true);
_secondTutorialUi.SetActive(false);
CurrentTutorialState = TutorialState.First;
StartCoroutine(FirstTutorialCoroutine());
}
private IEnumerator FirstTutorialCoroutine()
{
yield return new WaitForSeconds(0.1f);
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;
//PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Combat);
//PlayerInputKeyManager.Instance.EnableAllActions();
CombatUiManager.Instance.MoveSelectStage(0);
}
}
}