From dc8713ff2a38d5d7cdcadfb9efd42915f96e8065 Mon Sep 17 00:00:00 2001 From: acdemiralp <demiralpali@gmail.com> Date: Thu, 20 Dec 2018 13:38:16 +0100 Subject: [PATCH] Mouse is now disabled in HMD/DC modes. --- .../Private/VirtualRealityPawn.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp index 8281ebbb..9ea06e43 100644 --- a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp +++ b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp @@ -3,6 +3,7 @@ #include "Cluster/IDisplayClusterClusterManager.h" #include "Engine/World.h" #include "Game/IDisplayClusterGameManager.h" +#include "GameFramework/InputSettings.h" #include "GameFramework/WorldSettings.h" #include "Input/IDisplayClusterInputManager.h" #include "Kismet/GameplayStatics.h" @@ -81,6 +82,10 @@ void AVirtualRealityPawn::BeginPlay () { Super::BeginPlay(); + bUseControllerRotationYaw = true; + bUseControllerRotationPitch = true; + bUseControllerRotationRoll = true; + // Display cluster settings apply to all setups (PC, HMD, CAVE/ROLV) despite the unfortunate name due to being an UE4 internal. TArray<AActor*> SettingsActors; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ADisplayClusterSettings::StaticClass(), SettingsActors); @@ -95,7 +100,10 @@ void AVirtualRealityPawn::BeginPlay () } if (IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster) - { + { + UInputSettings::GetInputSettings()->RemoveAxisMapping(FInputAxisKeyMapping(FName(TEXT("TurnRate" )), EKeys::MouseX)); + UInputSettings::GetInputSettings()->RemoveAxisMapping(FInputAxisKeyMapping(FName(TEXT("LookUpRate")), EKeys::MouseY)); + // Requires a scene node called flystick in the config. Flystick = IDisplayCluster::Get().GetGameMgr()->GetNodeById(TEXT("flystick")); @@ -103,8 +111,11 @@ void AVirtualRealityPawn::BeginPlay () LeftHand = Flystick; RightHand = Flystick; } - else if (UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayEnabled()) + else if (UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayConnected()) { + UInputSettings::GetInputSettings()->RemoveAxisMapping(FInputAxisKeyMapping(FName(TEXT("TurnRate" )), EKeys::MouseX)); + UInputSettings::GetInputSettings()->RemoveAxisMapping(FInputAxisKeyMapping(FName(TEXT("LookUpRate")), EKeys::MouseY)); + LeftMotionController ->SetVisibility(true); RightMotionController->SetVisibility(true); @@ -114,10 +125,6 @@ void AVirtualRealityPawn::BeginPlay () } else { - bUseControllerRotationYaw = true; - bUseControllerRotationPitch = true; - bUseControllerRotationRoll = true; - Forward = RootComponent; LeftHand = RootComponent; RightHand = RootComponent; -- GitLab