From 54e9efd1e0f4fe66ed7311e05947abefa8e3585a Mon Sep 17 00:00:00 2001 From: MostExcellent Date: Tue, 22 Oct 2024 11:43:10 -0700 Subject: [PATCH] Added utility function to get pawn 2d speed --- Plugins/VRGAS/Source/VRGAS/Public/VRGASUtils.h | 2 ++ .../Source/VRUtils/Private/VRUtilsBPLibrary.cpp | 10 ++++++++++ .../VRUtils/Source/VRUtils/Public/VRUtilsBPLibrary.h | 5 ++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Plugins/VRGAS/Source/VRGAS/Public/VRGASUtils.h b/Plugins/VRGAS/Source/VRGAS/Public/VRGASUtils.h index 45311fe..6be1eca 100644 --- a/Plugins/VRGAS/Source/VRGAS/Public/VRGASUtils.h +++ b/Plugins/VRGAS/Source/VRGAS/Public/VRGASUtils.h @@ -6,8 +6,10 @@ #include "Kismet/BlueprintFunctionLibrary.h" #include "VRGASUtils.generated.h" +class UGameplayAbility; class UGameplayEffect; class UAbilitySystemComponent; + /** * */ diff --git a/Plugins/VRUtils/Source/VRUtils/Private/VRUtilsBPLibrary.cpp b/Plugins/VRUtils/Source/VRUtils/Private/VRUtilsBPLibrary.cpp index 93f8a94..0b26b94 100644 --- a/Plugins/VRUtils/Source/VRUtils/Private/VRUtilsBPLibrary.cpp +++ b/Plugins/VRUtils/Source/VRUtils/Private/VRUtilsBPLibrary.cpp @@ -2,6 +2,7 @@ #include "VRUtilsBPLibrary.h" #include "VRUtils.h" +#include "GameFramework/PawnMovementComponent.h" float UVRUtilsBPLibrary::GetPawnSpeedAlongVector(const APawn* InPawn, const FVector& InVector) { @@ -44,6 +45,15 @@ float UVRUtilsBPLibrary::GetPawnUpVectorSpeed(const APawn* InPawn) return FVector::DotProduct(Velocity, UpVector); } +float UVRUtilsBPLibrary::GetPawnXYSpeed(const APawn* InPawn) +{ + if (!InPawn) return 0.0f; + + const FVector PawnVelocity = InPawn->GetMovementComponent()->Velocity; + + return PawnVelocity.Size2D(); +} + float UVRUtilsBPLibrary::GetDegreeDiff(const FVector& A, const FVector& B) { const float DotResult = FVector::DotProduct(A, B); diff --git a/Plugins/VRUtils/Source/VRUtils/Public/VRUtilsBPLibrary.h b/Plugins/VRUtils/Source/VRUtils/Public/VRUtilsBPLibrary.h index fe400b5..bccfb9d 100644 --- a/Plugins/VRUtils/Source/VRUtils/Public/VRUtilsBPLibrary.h +++ b/Plugins/VRUtils/Source/VRUtils/Public/VRUtilsBPLibrary.h @@ -27,12 +27,15 @@ public: UFUNCTION(BlueprintPure, Category = "VRUtils|Movement|Speed") static float GetPawnForwardVectorSpeed(const APawn* InPawn); - + UFUNCTION(BlueprintPure, Category = "VRUtils|Movement|Speed") static float GetPawnRightVectorSpeed(const APawn* InPawn); UFUNCTION(BlueprintPure, Category = "VRUtils|Movement|Speed") static float GetPawnUpVectorSpeed(const APawn* InPawn); + + UFUNCTION(BlueprintPure, Category = "VRUtils|Movement|Speed") + static float GetPawnXYSpeed(const APawn* InPawn); #pragma endregion #pragma region Math