Inflearn brand logo image

인프런 커뮤니티 질문&답변

호준님의 프로필 이미지
호준

작성한 질문수

AI 시대의 혁신적인 게임 개발 입문 with Unity6

Player Input Setting 관련 질문입니다.

해결된 질문

작성

·

101

1

실습 환경 : Mac OS M2 Pro

유니티 자체가 처음이어서 질문이 방향을 벗어날 수도 있다는 점 양해 부탁드립니다.

 

유니티에서 프로젝트를 생성한 뒤 Input 관련 코드를 작성하면 항상 아래와 같이 뜨는데요,

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.

구글링해 보니 Edit > Project Settings > Player의 Active Input Handling을 Both로 변경하면 해결된다고 하여 그렇게 세팅한 뒤 해결했습니다.

다만 여기서 궁금한 점이 두 가지가 있는데요,

  1. 해당 설정의 Default 값은 Input System Package (New) 인데 이게 Default인 이유가 있을 것 같은데 오류가 발생하는 걸 보면, 강의에서는 Input Manager (Old) 와 관련된 Input들로 진행이 된 걸까요? 만약 그렇다면 그렇게 진행한 이유가 궁금합니다.

  2. 강의에서는 해당 오류가 발생하지 않은 걸 보면 기본 세팅 자체가 다른 게 아닌가 추측되는데, 기본적으로 해당 속성을 Both로 설정하신 건가요? 만약 그렇다면 저의 경우는 프로젝트가 생성될 때마다 해당 설정을 변경해줘야 했는데 어떻게 가능한 건지 방법이 궁금합니다.

감사합니다.

답변 2

1

UniCoti님의 프로필 이미지
UniCoti
지식공유자

안녕하세요. 좋은 질문 감사합니다. 저도 최근 새로운 프로젝트를 시작하면서 엔진을 새롭게 다운받았는데, 저 오류가 생기더라고요. 설정 자체는 말씀하시는 것 처럼 Project Settings -> Player -> Active Input Handling을 Both나 Old로 바꿔주시면 되는데, 유니티 6 초기엔 Both로 설정되어 있었어서 현재랑 달라진 것 같습니다.

 

이 부분은 강의를 업데이트해서 수강자분들 헷갈리시지 않게 노력하겠습니다.

1.

그 설정이 Default인 이유는 유니티가 6버전으로 들어오면서 (new)Input System을 밀어주고 있기 때문입니다. 저도 바운스볼에서 한번 다루려고 했는데 수박게임이라는 여정을 연습하기 전에 수박게임과 다른 설정을 써버리면 좀 어색해져서 다루지 않았네요.

사실 Old 버전이 훨씬 구현하기가 편합니다. New버전은 세팅에 꽤 많은 공이 들어가서 체계적인 작업을 하기에는 좋지만 바운스볼처럼 간단한 입력에는 과하게 복잡해지는 면이 있어요. 과하게 체계적인게 안좋은거냐.. 하면 모르겠지만 이 강의의 주 목적이 가장 효율적이고 간편한 방법들로 본인 스스로 나도 게임 개발 할 수 있다고 말하게 되는 것이기 때문에 Old를 사용했습니다. 프로젝트 진행하면서 보게 될 여러 자료도 아직 Old에 훨씬 맞춰져있기도 하고요. 제공해드리는 전자책에도 New버전 설명이 담겨있어 괜찮을거라 판단했습니다.

 

2.

앞선 답변과 같은 맥락으로 Unity6초기에는 Both로 설정되어있던걸로 기억을 합니다.

 

빠른 시일 내에 고쳐서 혼란을 방지하도록 하겠습니다. 강의 초반인데도 홀로 오류도 찾아 고치시고 힘드셨겠네요.

호준님의 프로필 이미지
호준
질문자

게임 분야는 아니지만 저도 개발자라서 디버깅 난이도는 어렵지 않았습니다 ㅎㅎ

다만 왜 그런지 이유가 궁금했을 뿐이었어요. 답변 감사드립니다.

UniCoti님의 프로필 이미지
UniCoti
지식공유자

아 개발자분인걸 잊고 있었네요. 어쩐지 아직 문제해결 파트 전인데도 알아서 해결하신게 신기하더라고요. 역시 경험이 계속 영향을 미치네요. 저도 다른 분께 혼란을 방지할 좋은 질문 감사드립니다.

0

안녕하세요, 인프런 AI 인턴입니다.

호준님께서 Unity의 Player Input 설정에 대해 질문해 주셨네요. Unity에서 Input System을 다루실 때 이러한 오류가 발생할 수 있습니다. 질문에 대한 답변을 드리겠습니다.

  1. Default 입력 시스템에 대한 이유:

    • Unity는 최신 버전에서 새로운 Input System을 기본으로 설정했습니다. 이것은 더 많은 기능성과 효율성을 제공하기 때문입니다. Input Manager (Old)는 기존의 입력 처리를 위한 시스템이며, Input System Package (New)는 더 발전된 입력 시스템이므로 최신 기능을 사용하려는 의도에서 default로 설정되었을 것입니다.
    • 강의에서 Input Manager (Old) 방식으로 진행했다면, 그것은 더 많은 사람들이 이미 익숙한 방식이며 구현이 상대적으로 간단하기 때문일 수 있습니다. 새로운 Input System은 MVC 패턴의 유연한 구조를 활용할 수 있지만, 초기 학습자를 위해 구버전을 사용하는 경우가 많습니다.
  2. 기본 설정 변경 여부:

    • 강의에서는 개발자가 기본적으로 세팅을 변경했거나, 강의 내용 자체가 Input Manager (Old)를 기반으로 작성되었을 가능성이 큽니다.
    • 프로젝트 템플릿이나 초기 설정 파일을 만들어 기본 속성을 Both로 수정한 후, 해당 파일을 새로운 프로젝트 생성 시마다 불러오는 방식으로 매번 세팅 변경의 번거로움을 피할 수 있습니다.

관련된 질문이나 이슈가 인프런 커뮤니티에 존재할 수 있습니다. 아래 링크를 통해 더 많은 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

호준님의 프로필 이미지
호준

작성한 질문수

질문하기