[Unity]context.phase

Hoojung Ahn·2024년 5월 30일

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");
            // 이동 취소 시의 로직
        }
    }
}
  • InputAction.CallbackContext:

OnMove 메서드는 InputAction.CallbackContext를 인자로 받는다. 이 인자는 입력 이벤트와 관련된 모든 정보를 포함한다.

  • context.phase:

context.phase를 통해 입력 이벤트의 현재 단계를 확인한다.
Started, Performed, Canceled 상태에 따라 다른 로직을 실행한다.

  • InputActionPhase:

InputActionPhase 열거형은 입력 이벤트의 단계를 정의한다.
이를 통해 각 단계에 따른 처리를 세분화할 수 있다.

입력 시스템 설정:

프로젝트 설정에서 Input System 패키지를 활성화해야 한다.

입력 액션 설정:

Unity 에디터에서 Input Actions Asset을 설정하고, 각 액션에 대해 콜백 메서드를 지정해야 한다.

요약

context.phase는 Unity Input System에서 입력 이벤트의 상태를 확인하는 데 사용된다. 이를 통해 입력이 시작되었는지, 수행 중인지, 취소되었는지 등을 구분하여 각각의 상황에 맞는 로직을 구현할 수 있다. InputActionPhase 열거형을 사용하여 입력의 각 단계를 명확히 처리할 수 있다.

0개의 댓글