- 1.7.0 Input System에서는 문제 없다가 1.8.2로 업그레이드되면서 처음 PlayerInput의 모든 Action이 Enable되는 현상이 생겼습니다. - CombatPlayer프리팹에서 PlayerInput컴포넌트를 비활성화 하고, 생성과 동시에 활성화합니다. - 첫 번째 튜토리얼에 진입하는 순간, 키 입력을 순간적으로 비활성화하고 되돌립니다. Closes #1
71 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |