플레이를 누르면 마우스 커서가 보이고 입력을 받질 않는다 따라서 입력을 받으려면 한번 클릭해줘야 한다, 언리얼 엔진의 기본 세팅은 GameAndUIEx이다 이건 UWidgetBlueprintLibrary 클래스 내에 static 함수를 사용하여 설정할 수가 있다.
각각 함수들의 용도는 다음과 같다.
- GameAndUIEx : UI만 사용자의 입력을 받게끔 한다 만약에 못받는다면 플레이어 컨트롤러가 받게 된다.
- GameOnly : 게임 컨트롤러만 입력받게끔 한다 (플레이 직후 마우스가 인게임으로 들어가며 커서 또한 사라진다).
- UIOnlyEx : UI만 입력받게끔 한다 (인벤토리 열고 닫을 때 플레이어 회전이라던지 막는 용도).
시작 직후 인게임 모드를 입력만 받게끔 사용한다.
if (auto p_World = GetWorld())
UWidgetBlueprintLibrary::SetInputMode_GameOnly(p_World->GetFirstPlayerController());
인벤토리를 열을 때의 경우다 커서를 다시 보이게끔 하고 뷰포트에서만 사용되게끔 막는다. 그게 EMouseLockMode의 역할이다. UI일 경우에만 UUserWidget에 대한 포인터를 넘긴다.
auto p_playerController = UGameplayStatics::GetPlayerController(GetWorld(), 0);
p_playerController->SetShowMouseCursor(true);
UWidgetBlueprintLibrary::SetInputMode_GameAndUIEx(p_playerController, pInventoryUI, EMouseLockMode::LockAlways);
참고 : https://docs.unrealengine.com/4.27/en-US/API/Runtime/UMG/Blueprint/UWidgetBlueprintLibrary/
참고 : https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/Engine/EMouseLockMode/
'게임엔진 > Unreal' 카테고리의 다른 글
[Unreal] UI 마우스 관한 동작 이벤트 설정방법 (0) | 2022.09.08 |
---|---|
[Unreal] 화면 정중앙 값 구하기 (0) | 2022.09.07 |
[Unreal] UI를 뷰포트 위치로 치환 및 이동하는 방법 (UI를 마우스의 위치로 또는 반대) (0) | 2022.09.02 |
[Unreal] Static Mesh (스태틱 메쉬) 그림자 끄는/키는 방법 C++ (0) | 2022.08.23 |
[Unreal] 사용자 정의 컴포넌트 (UActorComponent) (0) | 2022.08.22 |