▶▷ 키세팅 기능

유저들은 기존에 세팅된 키를 누르고 변경하고 싶은 키를 입력하여 변경할 수 있다.

AddListener를 통해 입력 받은 키 코드를 저장한 다음 Input System을 관리하는 스크립트에 이벤트로 전송하고
▶▷ 트러블 슈팅
막히는 점
다른 키 (A, B, Space 등)는 정상적으로 바인딩되지만 Ctrl 키 (LeftControl, RightControl)는 UI에만 표시되고
실제 바인딩 동작이 되지 않는 현상
원인 분석
- 처음에는 UI 코드의 문제로 판단
- Input.GetKeyDown(KeyCode.LeftControl)로 감지하여 KeyCode 저장 및 텍스트 표시는 성공
- 하지만 실제 인풋 동작이 안 됨
- PlayerInput.cs에서 InputAction.ChangeBinding().WithPath(...)로 바인딩을 적용하는 구조
- 문제의 핵심: 경로 변환 방식
- KeyCode.LeftControl.ToString().ToLower() → "leftcontrol" → <Keyboard>/leftcontrol ❌
- Input System은 이 경로를 유효한 키 경로로 인식하지 못함
- Input System에서 허용하는 올바른 경로
- KeyCode.LeftControl → <Keyboard>/leftCtrl ✅
- KeyCode.RightControl → <Keyboard>/rightCtrl ✅
- Ctrl, Shift, Alt 키는 반드시 정확한 경로 문자열이 필요 ★★
해결 방법
문제 해결을 위해 유틸 메서드 추가하고 ChangeBinding().WithPath(...) 호출 시 사용
private string GetKeyPath(KeyCode keyCode)
{
return keyCode switch
{
KeyCode.LeftControl => "<Keyboard>/leftCtrl",
KeyCode.RightControl => "<Keyboard>/rightCtrl",
KeyCode.LeftShift => "<Keyboard>/leftShift",
KeyCode.RightShift => "<Keyboard>/rightShift",
KeyCode.LeftAlt => "<Keyboard>/leftAlt",
KeyCode.RightAlt => "<Keyboard>/rightAlt",
_ => $"<Keyboard>/{keyCode.ToString().ToLower()}"
};
}
inputAction.ChangeBinding(0).WithPath(GetKeyPath(keyCode));
결과 및 이점
- 문제 해결: Ctrl 키도 다른 키들과 동일하게 UI에서 바인딩
- 구조 일관성: 특수키(Modifier)도 일반 키처럼 관리 가능해짐
- 재사용성 향상: Shift, Alt, Ctrl 등 추가 확장도 GetKeyPath()만 수정하면 끝
- 유지보수 쉬움: Input System 경로에 대한 모든 처리를 한 곳에서 관리 가능
▶▷ 2차 유저 테스트 결과
멀티 모드를 추가하고 개선 사항들도 적용한 다음 2차 테스트도 배포하였다.
2차 테스트는 테스터는 많았지만 설문을 시간 상 짧게 진행한 탓에 비록 표본은 적지만 기록해두려고 한다.
멀티모드 및 개선사항이 추가되니 전반적인 만족도가 올라간 것을 볼 수 있다.
사소한 버그들이 종종 남아있어 해당 부분들에 대한 피드백이 있었고
밸런스 조절같은 경우는 아무래도 한번의 패치로는 완벽히 조율할 수 없었던 것 같다.
스테이지 난이도 자체는 목표한 것과 거의 비슷한 정도의 수치가 나온 것을 보아 적절히 조율한 것 같다.
1차에 비해 다시 플레이 하고싶다는 의견이 많이 나온 것을 볼 수 있다.
▶▷ 후기
드디어 길다면 길고 짧다면 짧았던 최종 프로젝트 및 부트캠프가 끝났다. 게임 하나를 제대로 끝까지 제대로 만들어냈다는 것과 이 게임을 주변 사람들에게 체험하게 하고 설문까지 받아보니 힘들었던 만큼 찾아오는 뿌듯함과 성취감은 말로 표현할 수 없는 것 같다. 최종 프로젝트인 만큼 졸업작품 이후로 처음 느껴보는 감정이었고 앞으로도 이 느낌을 받아가면서 일 할 수 있었으면 좋겠다.
기회가 된다면 조금 더 다듬어 출시하는 과정까지 경험해보고 싶었으나 그러지 못해서 아쉬웠다. 팀원들 모두 일정을 맞추긴 힘들어서 전체적인 작업을 이어서 하기는 힘들 것 같지만 내가 담당한 부분들이나마 조금씩 개선해보고 팀원들의 부분도 보면서 이해해보는 방향으로 해봐야겠다.
열심히 해온 과정들이 끝났다고 생각하니 허전함 또한 많이 밀려오지만 아직 여정은 끝나지 않았고 지금까지의 텐션 놓치지 않으면서 취업까지 힘낸다는 마인드로 이어갈 것이다. 파이팅!!
'게임 개발 공부 기록' 카테고리의 다른 글
75일차 ~ 마무리 - Abyss_Slayer 최종 팀 프로젝트 마무리 2 (1차 유저 테스트 및 개선 사항) (0) | 2025.06.05 |
---|---|
75일차 ~ 마무리 - Abyss_Slayer 최종 팀 프로젝트 마무리 1 (Analytics) (0) | 2025.06.05 |
74일차 - Abyss_Slayer 최종 팀 프로젝트 23 (스킬 강화 시스템 3) (0) | 2025.05.14 |
73일차 - Abyss_Slayer 최종 팀 프로젝트 22 (스킬 강화 시스템 2) (0) | 2025.05.13 |
72일차 - Abyss_Slayer 최종 팀 프로젝트 21 (스킬 강화 시스템) (0) | 2025.05.12 |