1️⃣ 메서드 이름 대소문자 확인
OnMove() 메서드의 O가 대문자인지 확인
C# 에서는 대소문자를 구분하므로 확인 필수
❌ 잘못된 예시 (소문자 o 사용)
csharp
void onMove(InputValue value) // 잘못된 메서드
✅ 올바른 예시 (대문자 O 사용)
csharp
void OnMove(InputValue value) // 올바른 메서드
2️⃣ PlayerInput 컴포넌트가 올바르게 설정되었는지 확인
유니티에서 OnMove()를 호출하려면, PlayerInput 컴포넌트가 필요합니다.
✅ PlayerInput이 있는지 확인하고, 없다면 추가!!!
설정 방법
- Player 오브젝트를 선택합니다.
- PlayerInput 컴포넌트가 있는지 확인
- 없다면 Add Component를 눌러 추가합니다.
- Behavior 옵션이 Send Messages로 되어 있는지 확인
- OnMove()는 Send Messages 모드에서만 호출
- 만약 Unity Events 모드라면 수동으로 연결해줘야 함 (C# Events도 마찬가지)

3️⃣ PlayerInput에서 "Move" 액션이 올바르게 설정되었는지 확인
Move 액션이 설정되지 않았다면 OnMove()가 호출되지 않음
설정이 꼬였을 가능성이 있으면, .inputactions 파일을 열어 바인딩을 확인하고 저장 후 빌드
✅ 설정 방법:
- PlayerInput → Actions 설정을 확인
- Move 액션이 존재하는지 확인
- Move 액션의 바인딩이 Vector2 타입인지 확인
- 키보드, 게임패드 입력이 제대로 바인딩되어 있는지 확인

4️⃣ Debug.Log() 추가해서 호출 여부 확인
OnMove()가 호출되는 것이 맞는지 디버그를 통해 확인
csharp
void OnMove(InputValue value) { inputVec = value.Get<Vector2>(); Debug.Log($"[OnMove] Input Vec: {inputVec}"); }
유니티 실행 후 콘솔에서 확인
✅ Input Vec: (1.0, 0.0) 같은 값이 나오면 호출되고 있는 것
❌ 만약 아무 로그도 안 나오면 2️⃣ PlayerInput 설정이 잘못된 것
✅ 최종 점검 체크리스트
✔️ OnMove()의 O가 대문자인지 확인
✔️ PlayerInput 컴포넌트가 추가되어 있는지 확인
✔️ PlayerInput의 Behavior가 "Send Messages"인지 확인
✔️ Move 액션이 Vector2 타입으로 설정되어 있는지 확인
✔️ OnMove() 안에서 Debug.Log()로 호출 여부 확인
'게임 기획 > Game Programming' 카테고리의 다른 글
[Unity/유니티] 게임 종료하기 Application.Quit (0) | 2025.01.30 |
---|---|
[Unity/유니티] 유니티 오브젝트 합치기 (merge objects) (0) | 2024.11.17 |
[Unity/유니티] 유니티 드래그 앤 드롭 (0) | 2024.11.17 |