Skip to content
Snippets Groups Projects
Commit 3a08aadd authored by Ehret's avatar Ehret
Browse files

allow rotations only when right mouse button is held

parent 002dc5c5
No related branches found
No related tags found
3 merge requests!22Get changes and fixes from 4.26 into 5 as well,!16update 4.27 branch to newest changes in 4.26,!15Improve desktop test interaction
...@@ -63,6 +63,30 @@ void AVirtualRealityPawn::SetupPlayerInputComponent(UInputComponent* PlayerInput ...@@ -63,6 +63,30 @@ void AVirtualRealityPawn::SetupPlayerInputComponent(UInputComponent* PlayerInput
// function bindings for grabbing and releasing // function bindings for grabbing and releasing
PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &AVirtualRealityPawn::OnBeginFire); PlayerInputComponent->BindAction("Fire", IE_Pressed, this, &AVirtualRealityPawn::OnBeginFire);
PlayerInputComponent->BindAction("Fire", IE_Released, this, &AVirtualRealityPawn::OnEndFire); PlayerInputComponent->BindAction("Fire", IE_Released, this, &AVirtualRealityPawn::OnEndFire);
// bind functions for desktop rotations only on holding down right mouse
if (UVirtualRealityUtilities::IsDesktopMode())
{
APlayerController* PC = Cast<APlayerController>(GetController());
if (PC)
{
PC->bShowMouseCursor = true;
PC->bEnableClickEvents = true;
PC->bEnableMouseOverEvents = true;
}
PlayerInputComponent->BindAction("EnableDesktopRotation", IE_Pressed, this, &AVirtualRealityPawn::StartDesktopRotation);
PlayerInputComponent->BindAction("EnableDesktopRotation", IE_Released, this, &AVirtualRealityPawn::EndDesktopRotation);
}
}
void AVirtualRealityPawn::StartDesktopRotation()
{
bApplyDesktopRotation = true;
}
void AVirtualRealityPawn::EndDesktopRotation()
{
bApplyDesktopRotation = false;
} }
void AVirtualRealityPawn::SetCameraOffset() const void AVirtualRealityPawn::SetCameraOffset() const
...@@ -102,7 +126,7 @@ void AVirtualRealityPawn::OnUp_Implementation(float Value) ...@@ -102,7 +126,7 @@ void AVirtualRealityPawn::OnUp_Implementation(float Value)
void AVirtualRealityPawn::OnTurnRate_Implementation(float Rate) void AVirtualRealityPawn::OnTurnRate_Implementation(float Rate)
{ {
/* Turning the user externally will make them sick */ /* Turning the user externally will make them sick */
if (UVirtualRealityUtilities::IsDesktopMode()) if (UVirtualRealityUtilities::IsDesktopMode() && bApplyDesktopRotation)
{ {
AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds() * CustomTimeDilation); AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds() * CustomTimeDilation);
} }
...@@ -111,7 +135,7 @@ void AVirtualRealityPawn::OnTurnRate_Implementation(float Rate) ...@@ -111,7 +135,7 @@ void AVirtualRealityPawn::OnTurnRate_Implementation(float Rate)
void AVirtualRealityPawn::OnLookUpRate_Implementation(float Rate) void AVirtualRealityPawn::OnLookUpRate_Implementation(float Rate)
{ {
/* Turning the user externally will make them sick */ /* Turning the user externally will make them sick */
if (UVirtualRealityUtilities::IsDesktopMode()) if (UVirtualRealityUtilities::IsDesktopMode() && bApplyDesktopRotation)
{ {
AddControllerPitchInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds() * CustomTimeDilation); AddControllerPitchInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds() * CustomTimeDilation);
SetCameraOffset(); SetCameraOffset();
......
...@@ -48,5 +48,11 @@ protected: ...@@ -48,5 +48,11 @@ protected:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn|Interaction") void OnBeginFire(); UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn|Interaction") void OnBeginFire();
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn|Interaction") void OnEndFire(); UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pawn|Interaction") void OnEndFire();
/*Desktop Testing*/
// the idea is that you have to hold the right mouse button to do rotations
UFUNCTION() void StartDesktopRotation();
UFUNCTION() void EndDesktopRotation();
bool bApplyDesktopRotation = false;
void SetCameraOffset() const; void SetCameraOffset() const;
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment