반응형
SMALL
Unity에서 New Input System을 사용하다 보면
분명 설정은 다 한 것 같은데 키보드, 마우스, 게임패드 입력이 안 먹는 상황이 자주 발생합니다.
이 글에서는 Unity Input System이 작동하지 않을 때 가장 먼저 확인해야 할 체크리스트를 정리합니다.
1. Input System 패키지 설치 확인
가장 기본적인 부분입니다.

경로
Window > Package Manager
- Input System 패키지가 설치되어 있는지 확인
- 설치되어 있지 않다면 Install
- 오래된 버전이면 Update
Unity 버전에 따라 Input System 호환성이 다를 수 있으니 가능하면 최신 LTS 사용을 권장합니다.
2. Active Input Handling 설정 (가장 중요)
입력이 안 될 때 가장 흔한 원인입니다.
경로
Edit > Project Settings > Player > Other Settings
Active Input Handling
- Input Manager (Old) ❌
- Input System Package (New) ⚠️
- Both (권장) ✅
⚠️ 이 설정을 바꾸면 Unity 재시작 필수입니다.
3. PlayerInput 컴포넌트 설정 확인
PlayerInput 컴포넌트를 사용하는 경우 아래를 꼭 확인합니다.
- Actions에 InputActionAsset이 정상적으로 연결되어 있는지
- Default Map 이름이 Action Map 이름과 정확히 일치하는지
- Behavior 설정이 의도한 방식인지
- Send Messages
- Invoke Unity Events
- Invoke C# Events
Action Map 이름은 대소문자까지 정확히 일치해야 입력이 들어옵니다.
4. InputAction Enable 안 한 경우
스크립트에서 Input Action을 직접 사용하는 경우 자주 발생하는 문제입니다.
void OnEnable() { controls.Enable(); } void OnDisable() { controls.Disable(); }
Enable()을 호출하지 않으면
👉 아무 입력도 들어오지 않습니다.
5. Send Messages 방식일 때 함수 이름 규칙
PlayerInput의 Behavior가 Send Messages일 경우
함수 이름 규칙을 반드시 지켜야 합니다.
public void OnMove(InputValue value) { Vector2 move = value.Get<Vector2>(); }
주의사항
- 함수 이름은 On + ActionName
- Action 이름과 철자, 대소문자 동일해야 함
6. UI 버튼이 안 눌릴 때
UI 입력은 별도 설정이 필요합니다.
EventSystem 확인
Hierarchy > EventSystem
- Standalone Input Module ❌
- Input System UI Input Module ✅
UI 버튼, 슬라이더가 안 먹는다면 거의 이 문제입니다.
7. 게임패드 / 디바이스 인식 문제
게임패드 입력이 안 될 경우 디바이스 인식부터 확인합니다.
경로
Window > Analysis > Input Debugger
- 디바이스가 Connected 상태인지
- 버튼 입력 시 값이 변하는지
디바이스는 인식되지만 Action에 바인딩이 안 된 경우도 많습니다.
그래도 안 될 때 최종 체크리스트
- Unity 재시작 했는가
- InputActionAsset을 저장했는가
- Action Map이 Enabled 상태인가
- 다른 스크립트에서 Disable 하지 않았는가
- PlayerInput이 중복으로 존재하지 않는가
마무리
Unity Input System은 설정 하나만 잘못돼도 전체 입력이 막히는 구조라
문제 원인을 모르면 계속 헤매게 됩니다.
반응형
LIST