bEnableGestureRecognizer (제스처 인식 활성화) true 되어 있을 때 설정한 InputMappingContext에 대해 바인딩이 되면해당 InputAction이 들어옴
Lyra 기준으로
ExperienceManagerComponent -> GameFeatureAction_AddInputContextMapping -> EnhancedInputSybsystem
Touch Interface 를 통해 화면에 HUD 처럼 조이스틱이나 버튼을 화면에 띄우기 가능
그러나, bEnableGestureRecognizer 이 활성화 되어있을 때
화면(빨간색) -> 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 |