내일배움캠프
내일배움캠프: InputSystem Rebinding (인풋시스템을 활용한 키 리바인딩)
pracumj
2024. 10. 25. 22:23
오늘 공부한 내용📝
오늘은 Unity Input System에서 리바인딩을 적용하는 방법에 대해 학습했다. 인풋시스템 내부 메서드를 활용한다면 쉽게 리바인딩이 가능하다는 것을 깨달았다.
인풋 시스템 리바인딩
리바인딩 단계
- 바인딩 키 등록:
- InputAction 객체를 생성하고, 각 Action에 필요한 초기 키 바인딩을 설정한다.
(Input Action을 생성해 그 안에다 정의하거나 스크립트를 통해 정의)
- InputAction 객체를 생성하고, 각 Action에 필요한 초기 키 바인딩을 설정한다.
- 리바인딩 설정:
- [ InputAction 객체명].PerformInteractiveRebinding() 메서드를 사용해 특정 Action에 대해 리바인딩을 시작한다.
- WithControlsExcluding("<Mouse>")와 같은 설정으로 특정 장치를 제외할 수도 있다.
- 리바인딩 비활성화 및 재작업:
- InputAction.Disable()을 통해 리바인딩 중 Action을 비활성화하여 의도치 않은 입력을 방지
- 리바인딩이 완료되면 InputAction.Enable()을 통해 다시 활성화하여 새로운 입력 설정을 반영
코드 예시
//InputAction을 받아 해당 첫번째 바인딩 값을 리바인딩
public void Rebind(InputAction action)
{
action.Disable();
action.PerformInteractiveRebinding()
.WithControlsExcluding("<Mouse>") // Mouse의 경우에는 키 값을 받지 않음 ex)마우스 사용이 없는 게임
.OnComplete(callback => action.Enable());
}