diff --git a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp index 9ea06e432ba7bd85d3730854a0bc1d59ebf044bd..93e443b242e540b0a17eb2ac0640fc29d80a2794 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 0569fdfa0a747634943faa43be1555cac59c2e60..da1b540322c32ed445612862329282b7ea4982d7 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);