Make Unreal REAL.
article thumbnail
Published 2023. 1. 27. 12:09
언리얼의 Input Stack Unreal Engine/고찰

 

Udemy 강좌를 수강하던 도중 헷갈리는 부분이 있었다.

 

문을 잡기 위해 좌클릭을 누를 때 플레이어의 이동과 시야 조정을 멈추고, 때었을 때 다시 활성화하는 부분이다.

 

논리적으로 따져보면 시야 조정을 멈추기 위해 Disable Input을 해야 하고, 다시 활성화하기 위해 Enable Input을 하는 게 맞지 않은가? 하는 생각이 들었다.

 

 

Enable Input

Enable Input

docs.unrealengine.com

 

그래서 언리얼 공식 문서를 보았는데 별 내용이 없었다..

 

유일하게 눈에 띄는 Input Stack이라는 단어를 발견했고 나는 이것에 대해 찾아보았다.

 

플레이어 컨트롤러는 매 프레임마다 APlayerController::Tick을 호출한다.

그리고 Tick 내에서 APlayerController::ProcessPlayerInput을 호출한다.

 

Game Viewport Client는 새로운 키, 마우스 입력 등을 저장하는 배열을 갖고 있다.

Tick은 이를 감시하다가 변화가 있으면 입력을 처리한다.

 

APlayerController 내의 Player Input(UObject)은 입력받은 것을 관리하고 Input Stack에 있는 입력을 Pawn이나 Input Component에 라우팅하는 역할을 한다.

 

Project Settings - Engine - Input에 매핑된 Action이나 Axis 정보가 Player Input(UObject)에 전달되어 처리된다.

 

 

찾아본 내용으로 유추하건대 Enable Input은 현재 액터를 플레이어 컨트롤러의 Input Stack에 Push한다는 것 같다.

현재 액터가 Input을 받을 수 있도록 한다는 것이다.

 

반대로 Disable Input은 플레이어 컨트롤러의 Input Stack에서 현재 액터를 Pop하여 Input을 더 이상 받지 않도록 하는 것 같다.

 

이제 막 언리얼 공부를 시작한 터라 확실치는 않지만 좀 더 다뤄보다 보면 자연히 알게 될 것이다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그