bEnableGestureRecognizer (제스처 인식 활성화) true 되어 있을 때 설정한 InputMappingContext에 대해 바인딩이 되면해당 InputAction이 들어옴

 

Lyra 기준으로

ExperienceManagerComponent -> GameFeatureAction_AddInputContextMapping -> EnhancedInputSybsystem 

 

Touch Interface 를 통해 화면에 HUD 처럼 조이스틱이나 버튼을 화면에 띄우기 가능

그러나, bEnableGestureRecognizer 이 활성화 되어있을 때 

화면(빨간색) -> TouchInterface(파란색) 순차적으로 조작 시, 동시에 조작가능하지만

TouchInterface(파란색) -> 화면(빨간색) 순차적으로 조작 시, 파란색 조작만 가능한 문제


화면(빨간색) -> TouchInterface(파란색)

TouchInterface(파란색) -> 화면(빨간색)
카메라 회전이 되질 않음

 

두 조작을 같이 받기 위하여 TouchInterface를 제거하고, UMG를 통하여 JoyStick 과 CameraRegion 위젯을 생성

JoyStick / CameraRegion 각각 위젯에서 NativeOnTouchStarted / NativeOnTouchMoved / NativeOnTouchEnded 행동에 대하여 Inject InputAction 을 함

 

이러한 방식으로 조이스틱과 카메라를 동시에 조작이 가능하지만 해당 UMG들이 AddViewPort 되기 전, Input이 들어오는 경우 문제발생

  • OpenLevel 도중 두 개의 손가락 Touch 를 유지한 상태에서 LoadComplete가 된 후
  • (LyraExperience 구조 기반 프로젝트) 설정한 InputMappingContext 기반으로 IEnhancedInputSubsystemInterface::AddMappingContext 에서 바인딩
  • 바인딩이 완료되고 Two Touch Input Started / Triggered 까지 들어옴
  • 후에 JoyStick / CameraRegion 이 생성되고 Two Touch 인풋이 UMG로 이전하지만 기존의 Two Touch Input Ended 가 불리지않아 계속 Trigger 가 무한으로 실행

 

마치 유니티에서 OnCollisionEnter / OnCollisionTriggered 까지 들어갔다가 중간에 해당 오브젝트가 Destroy 되어 OnCollisionEnded 가 불리지 않는 상황이랑 비슷하였다.

 

방법은 두 가지

  • Input Mapping 순서를 JoyStick / CameraRegion 뒤로 미루기
  • bEnableGestureRecognizer 를 비활성화 하여 (어차피 UMG Input을 사용하므로) 앱의 Gesture를 막기

'언리얼' 카테고리의 다른 글

FAB 플러그인 등록 과정  (0) 2025.04.24
AsyncTask 간단 예제  (0) 2024.12.16
Save / Load GameData (.sav)  (0) 2024.07.19
SceneCaptureComponent2D  (0) 2024.06.26
ChunkDownloader  (0) 2024.05.02

+ Recent posts