context.phase는 Unity의 Input System에서 입력 이벤트의 현재 상태를 나타내는 속성. 이 속성을 통해 입력이 어떤 단계에 있는지를 확인할 수 있다. 주로 InputAction.CallbackContext 클래스에서 사용된다.
InputActionPhase 열거형
context.phase는 InputActionPhase 열거형을 반환하며, 이 열거형은 다음과 같은 상태를 가질 수 있다:
Started: 입력이 시작되었음을 나타낸다.
Performed: 입력이 완료되었음을 나타낸다.
Canceled: 입력이 취소되었음을 나타낸다.
Waiting: 입력이 대기 중임을 나타낸다.
Disabled: 입력이 비활성화되었음을 나타낸다.
context.phase를 사용하여 입력 이벤트의 상태를 처리
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
public void OnMove(InputAction.CallbackContext context)
{
if (context.phase == InputActionPhase.Started)
{
Debug.Log("Movement started");
// 이동 시작 시의 로직
}
else if (context.phase == InputActionPhase.Performed)
{
Vector2 movement = context.ReadValue<Vector2>();
Debug.Log($"Movement performed: {movement}");
// 이동 중일 때의 로직
}
else if (context.phase == InputActionPhase.Canceled)
{
Debug.Log("Movement canceled");
// 이동 취소 시의 로직
}
}
}
OnMove 메서드는 InputAction.CallbackContext를 인자로 받는다. 이 인자는 입력 이벤트와 관련된 모든 정보를 포함한다.
context.phase를 통해 입력 이벤트의 현재 단계를 확인한다.
Started, Performed, Canceled 상태에 따라 다른 로직을 실행한다.
InputActionPhase 열거형은 입력 이벤트의 단계를 정의한다.
이를 통해 각 단계에 따른 처리를 세분화할 수 있다.
입력 시스템 설정:
프로젝트 설정에서 Input System 패키지를 활성화해야 한다.
입력 액션 설정:
Unity 에디터에서 Input Actions Asset을 설정하고, 각 액션에 대해 콜백 메서드를 지정해야 한다.
context.phase는 Unity Input System에서 입력 이벤트의 상태를 확인하는 데 사용된다. 이를 통해 입력이 시작되었는지, 수행 중인지, 취소되었는지 등을 구분하여 각각의 상황에 맞는 로직을 구현할 수 있다. InputActionPhase 열거형을 사용하여 입력의 각 단계를 명확히 처리할 수 있다.