내일배움캠프 29일차 TIL - Input System

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

개요

유니티의 Input System은 두 가지 주요 사용 방법이 있다.

  • Send Message
  • CallbackContext

이 두 방식은 모두 입력 이벤트를 처리하는 방법이지만, 사용 방식과 용도에는 몇 가지 차이점이 있다.

공통점

두 방식 모두 입력 이벤트를 처리하는 데 사용된다. 즉, 키보드, 마우스, 게임패드 등의 입력 장치로부터 이벤트를 받아 처리하는 역할을 한다.

차이점

  1. Send Message
    Send Message 방식은 입력 이벤트가 발생하면 해당 이벤트를 처리하는 함수를 직접 호출한다. 간단하고 직관적이지만, 함수 이름이 문자열로 지정되므로 오타나 이름 변경 시 문제가 발생할 수 있다. 또한, 이 방식은 Monobehaviour에서만 사용할 수 있다고 한다.
public void OnFire(InputValue value)
{
    // Fire event 처리 코드
}
  1. CallbackContext
    CallbackContext 방식은 입력 이벤트를 처리하는 함수를 델리게이트로 등록한다. 이 방식은 함수를 직접 참조하므로 이름 변경이나 오타에 안전하며, Monobehaviour 외의 다른 클래스에서도 사용 할 수 있다고 한다. 또한, 여러 함수를 동일한 이벤트에 연결할 수도 있다.
public void OnEnable()
{
    controls.Gameplay.Fire.performed += context => OnFire(context);
}

public void OnFire(InputAction.CallbackContext context)
{
    // Fire event 처리 코드
}

결론

Send Message 방식은 간단한 입력 처리에 적합하며, CallbackContext 방식은 더 복잡하거나 유연성이 필요한 입력 처리에 적합하다.

profile
스터디 로그

0개의 댓글