From c4e230d66d767acc74bb0f75011f9335703bdf87 Mon Sep 17 00:00:00 2001 From: Jonathan Wendt <wendt@vr.rwth-aachen.de> Date: Fri, 15 Mar 2019 15:51:37 +0100 Subject: [PATCH] Add VR Navigation Mode to disable Flystick flying --- .../Private/VirtualRealityPawn.cpp | 12 +++++++++--- .../Public/VirtualRealityPawn.h | 8 ++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp index 9ea06e43..93e443b2 100644 --- a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp +++ b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp @@ -39,11 +39,17 @@ AVirtualRealityPawn::AVirtualRealityPawn(const FObjectInitializer& ObjectInitial void AVirtualRealityPawn::OnForward_Implementation (float Value) { - AddMovementInput(Forward->GetForwardVector(), Value); + if (NavigationMode == EVRNavigationModes::NAV_MODE_FLY) + { + AddMovementInput(Forward->GetForwardVector(), Value); + } } -void AVirtualRealityPawn::OnRight_Implementation (float Value) +void AVirtualRealityPawn::OnRight_Implementation(float Value) { - AddMovementInput(Forward->GetRightVector (), Value); + if (NavigationMode == EVRNavigationModes::NAV_MODE_FLY) + { + AddMovementInput(Forward->GetRightVector(), Value); + } } void AVirtualRealityPawn::OnTurnRate_Implementation (float Rate ) { diff --git a/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h b/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h index 0569fdfa..da1b5403 100644 --- a/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h +++ b/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h @@ -10,6 +10,12 @@ #include "VirtualRealityPawn.generated.h" +UENUM(BlueprintType) +enum class EVRNavigationModes : uint8{ + NAV_MODE_NONE UMETA(DisplayName = "Navigation Mode None"), + NAV_MODE_FLY UMETA(DisplayName = "Navigation Mode Fly") +}; + UCLASS() class DISPLAYCLUSTEREXTENSIONS_API AVirtualRealityPawn : public ADisplayClusterPawn { @@ -23,6 +29,8 @@ public: UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn") void OnFire (bool Pressed); UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn") void OnAction (bool Pressed, int32 Index); + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Pawn") EVRNavigationModes NavigationMode = EVRNavigationModes::NAV_MODE_FLY; + protected: DECLARE_DELEGATE_OneParam (FFireDelegate , bool); DECLARE_DELEGATE_TwoParams(FActionDelegate, bool, int32); -- GitLab