Skip to content
Snippets Groups Projects
Commit 7457b1d4 authored by Lab1's avatar Lab1
Browse files

Merge branch 'fix/maxClickDistance' into 4.27

(cherry picked from commit 39c6c218)
parent 5967d695
Branches
Tags
1 merge request!13Draft: Improve walking implementation
Pipeline #245163 failed
......@@ -43,6 +43,7 @@ void UBasicVRInteractionComponent::BeginPlay()
//WidgetInteractionComponent
InteractionDistance = MaxClickDistance;
InteractionRay->SetRelativeScale3D(FVector(MaxClickDistance / 100.0f, 0.5f, 0.5f)); //the ray model has a length of 100cm (and is a bit too big in Y/Z dir)
SetInteractionRayVisibility(InteractionRayVisibility);
}
......@@ -196,16 +197,13 @@ void UBasicVRInteractionComponent::TickComponent(float DeltaTime, ELevelTick Tic
LastActorHit = HitActor; // Store the actor that was hit to have access to it in the next frame as well
}
void UBasicVRInteractionComponent::Initialize(USceneComponent* RayEmitter, float InMaxGrabDistance, float InMaxClickDistance)
void UBasicVRInteractionComponent::Initialize(USceneComponent* RayEmitter)
{
if(InteractionRayEmitter) return; /* Return if already initialized */
InteractionRayEmitter = RayEmitter;
MaxGrabDistance = InMaxGrabDistance;
MaxClickDistance = InMaxClickDistance;
InteractionRay->AttachToComponent(RayEmitter, FAttachmentTransformRules::KeepRelativeTransform);
InteractionRay->SetRelativeScale3D(FVector(MaxClickDistance/100.0f, 1.0f, 1.0f)); //the ray model has a length of 100cm
this->AttachToComponent(RayEmitter, FAttachmentTransformRules::KeepRelativeTransform);
}
......
......@@ -36,13 +36,13 @@ public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
UPROPERTY(BlueprintReadWrite) float MaxGrabDistance = 50;
UPROPERTY(BlueprintReadWrite) float MaxClickDistance = 500;
UPROPERTY(EditAnywhere,BlueprintReadWrite) float MaxGrabDistance = 50;
UPROPERTY(EditAnywhere,BlueprintReadWrite) float MaxClickDistance = 500;
// Enable this if you want to interact with Targetable classes or use EInteractionRayVisibility::VisibleOnHoverOnly
UPROPERTY(EditAnywhere) bool bCanRaytraceEveryTick = false;
UPROPERTY(EditAnywhere) TEnumAsByte<EInteractionRayVisibility> InteractionRayVisibility = EInteractionRayVisibility::Invisible;
UFUNCTION(BlueprintCallable) void Initialize(USceneComponent* RayEmitter, float InMaxGrabDistance = 50, float InMaxClickDistance = 500);
UFUNCTION(BlueprintCallable) void Initialize(USceneComponent* RayEmitter);
UFUNCTION(BlueprintCallable, BlueprintPure) AActor* GetGrabbedActor() const { return GrabbedActor;}
UFUNCTION(BlueprintCallable, BlueprintPure) USceneComponent* GetInteractionRayEmitter() const { return InteractionRayEmitter; }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment