내일배움캠프 28일차 TIL - Input System Key Rebind

권태하·2024년 5월 24일
post-thumbnail

개요

InputActionAsset은 Unity의 새로운 입력 시스템에서 사용되는 클래스로, 여러 InputAction을 그룹화하는 데 사용된다.

InputAction을 찾아서 활성화

public InputActionAsset actionAsset;
private InputAction spaceAction;

void Start()
{
    // actionAsset에서 Space 액션을 찾고 활성화합니다.
    spaceAction = actionAsset.FindAction("Space");
}

actionAsset.FindAction("Space") 코드는 InputActionAsset에서 "Space"라는 이름의 InputAction을 찾는다.
그러나 이 코드만으로는 InputAction이 활성화 되지 않는다. InputAction을 활성화하려면 Enable 메서드를 호출해야 한다.

void Start()
{
    // actionAsset에서 Space 액션을 찾고 활성화합니다.
    spaceAction = actionAsset.FindAction("Space");
    if (spaceAction != null)
    {
        spaceAction.Enable();
    }
}

Key Rebind

InputAction의 ApplyBindingOverride 메서드를 사용하여 기존 바인딩을 새 키로 재바인딩 할 수 있다. 이 메서드에는 바인딩의 ID와 새로운 바인딩을 나타내는 문자열이 인수로 필요하다.

아래와 같은 코드로 Space 키의 바인딩을 Escape 키로 재바인딩 할 수 있다.

public void RebindSpaceToEscape()
{
    if (spaceAction == null)
        return;

    // 기존 바인딩을 비활성화하고 새 키로 재바인딩
    spaceAction.ApplyBindingOverride("<Keyboard>/escape");
}
profile
스터디 로그

0개의 댓글