인프런 커뮤니티 질문&답변
66강. INPUT 관리
해결된 질문
작성
·
21
0
INPUT 관련 메서드 사용 부분에서
Player.gd 스크립트에서 Player 이동는 매번 상태체크 해야하기때문에
부스터 , 유도탄 발사는 가끔씩 이벤트 발생해서 _Input () 를
_unhandle_Input () 으로 변경했는지 궁금하네요..
실제 사용예시를 알려주실려고 변경하셨는지 궁금하네요..
답변 2
0
안녕하세요!
말씀하신대로 부스터, 유도탄 발사는 가끔씩만 입력하므로
process가 아닌 unhandled input(또는 input)에 넣었습니다.
66강에서 캐릭터 조작 관련은 unhandled input에 쓰겠다고
제가 분류를 한지라, unhandled input에 넣게 되었네요.
아울러
player 이동은 워낙 역동적으로 움직이다 보니
process에 두어도 성능 낭비가 없겠다는 판단이 들어 process에 남겨두었습니다.
다시 보니
var direction을 바깥에서 선언하고,
process에 있는 direction = Input.get_vector("move_left", ... ,"move_down") 한 줄을
unhandled input으로 가져오는 게 오해의 소지를 최대한 없앨 것 같네요.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. 김광호님.
Godot 엔진을 사용한 게임 개발에서 입력 관리는 핵심 사항 중 하나입니다. 질문하신 내용은 Player.gd 스크립트에서 입력 처리 방식에 대해 다루고 있는 것 같습니다.
이동 관련 입력은 일반적으로 게임 루프에서 지속적으로 상태를 체크하기 때문에 _process 또는 _physics_process 함수 안에서 관리됩니다. 이는 게임 캐릭터가 부드럽게 움직일 수 있도록 하기 위해 필요한 처리입니다.
반면, 부스터나 유도탄 발사와 같은 행동은 종종 특정 이벤트나 트리거에 의해 발생합니다. 이러한 경우에는 Input 클래스의 함수들을 사용하여 이벤트가 발생했을 때만 입력을 처리하는 것이 효율적입니다. _Input 함수는 모든 입력 이벤트를 받아 처리할 수 있으므로, 정교한 입력 관리를 위해 _unhandle_Input으로 변경하여 비정기적으로 발생하는 이벤트를 잘 처리할 수 있습니다.
이에 대해 더 깊이 이해하고 싶으시다면, 다음 자료를 참고해 보시기 바랍니다:
- “고도 엔진에서 입력 이벤트 관리하기”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




