UDN
Search public documentation:

MOBAKitTouchpadKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > UDK 젬 > MOBA 스타터 키트 > 터치 패드

MOBA 스타터 키트 - 터치 패드


문서 변경내역: James Tan 작성. 홍성진 번역. UDK 2012년 5월 버전으로 최종 테스팅.

개요


이 스타터 키트에는 터치 패드로 게임을 제어할 수 있는 다른 종류의 인터페이스도 포함되어 있습니다. (UDKMOBAMapInfo 의 디버그 옵션을 설정하여) 플랫폼을 강제로 Mobile 로 설정하거나, iPad2 같은 모바일 디바이스에서 게임을 실행시키면 이 인터페이스가 자동으로 사용됩니다. 터치 패드로 게임을 제어하는 것은, 터치 이벤트로부터 이끌어낼 수 있는 정보라는 것이 고작 위치에 관련된 것이거나 같은 터치 이벤트의 이동에 관한 것이 전부이기에 많은 문제가 있습니다. 즉 터치 패드 인터페이스는 키보다와 마우스 매핑을 단순히 터치 패드에 매핑시키는 정도로는 안됩니다. 가상 조작 패드를 사용하는 것은 간단하지만 바람직하지는 않습니다. 그래서 터치 패드를 해석하고 플레이어에게 단순한 인터페이스를 제공하기 위해 새로운 클래스 세트를 만들었습니다. 더욱 단순한 인터페이스가 필요하기에, 게임내 UI 도 그에 맞게 변경해야 했습니다.

UDKMOBAHUD_Mobile


함수

  • PostRender() - 엔진이 HUD 업데이트를 위해 매 프레임 호출하는 이벤트입니다. UDKMOBAHUD_Mobile::ProcessTouchEvents() 를 호출합니다.
  • ProcessTouchEvents() - UDKMOBAPlayerController_Mobile::TouchEvents 배열에 대해 반복처리하여 처리되지 않은 터치 이벤트를 찾는 함수입니다. 처리되지 않은 이벤트에는 UDKMOBAPlayerController_Mobile::HandlePendingRightClickCommand() 를 호출한 다음 처리되었다는 플랙 표시를 합니다.

UDKMOBAPlayerController_Mobile


MobilePlayerInput::OnInputTouch() 를 통해 제공되는 네이티브 델리게이트를 사용하여 메인 터치 인터페이스를 처리하는 클래스입니다. 이 델리게이트는 인풋 시스템이 초기화될 때 바인딩되고, 플레이어 콘트롤러가 소멸될 때 바인딩 해제됩니다. 플레이어 콘트롤러는 반드시 PlayerCommanding 스테이트에 있어야 하는데, MobilePlayerInput::OnInputTouch() 에 바인딩된 함수는 단순히 이 스테이트 밖의 stub 이기 때문입니다.

PlayerCommanding::InternalOnInputTouch()

플레이어 콘트롤러 안에 저장된 터치 이벤트를 생성하고 소멸하며 업데이트할 뿐인 함수입니다. 터치를 게임 로직에 맞게 처리하는 것은 플레이어 콘트롤러가 직접 담당하지 않으며, UDKMOBAHUD_Mobile 에서 처리됩니다. 왜냐면 Canvas 인스턴스가 필요하기 때문입니다.

PlayerAimingSpell::InternalOnInputTouch()

터치 이벤트를 버튼이 눌린 양 기록을 유지하기만 하는 변종 함수입니다. 터치를 게임 로직에 맞게 처리하는 것은 플레이어 콘트롤러가 직접 담당하지 않으며, UDKMOBAHUD_Mobile 에서 처리됩니다. 왜냐면 Canvas 인스턴스가 필요하기 때문입니다.