@@ -506,6 +506,8 @@ void UVRRootComponent::TickComponent(float DeltaTime, enum ELevelTick TickType,
506
506
507
507
if (IsLocallyControlled ())
508
508
{
509
+ bool bHadBadTracking = false ;
510
+
509
511
if (owningVRChar && owningVRChar->bTrackingPaused )
510
512
{
511
513
curCameraLoc = owningVRChar->PausedTrackingLoc ;
@@ -524,6 +526,7 @@ void UVRRootComponent::TickComponent(float DeltaTime, enum ELevelTick TickType,
524
526
{
525
527
curCameraLoc = lastCameraLoc;
526
528
curCameraRot = lastCameraRot;
529
+ bHadBadTracking = true ;
527
530
}
528
531
else
529
532
{
@@ -562,7 +565,7 @@ void UVRRootComponent::TickComponent(float DeltaTime, enum ELevelTick TickType,
562
565
563
566
564
567
// Can adjust the relative tolerances to remove jitter and some update processing
565
- if (!bRetainRoomscale || (!curCameraLoc.Equals (lastCameraLoc, 0 .01f ) || !curCameraRot.Equals (lastCameraRot, 0 .01f )))
568
+ if (!bHadBadTracking && (! bRetainRoomscale || (!curCameraLoc.Equals (lastCameraLoc, 0 .01f ) || !curCameraRot.Equals (lastCameraRot, 0 .01f ) )))
566
569
{
567
570
// Also calculate vector of movement for the movement component
568
571
FVector LastPosition = OffsetComponentToWorld.GetLocation ();
@@ -638,7 +641,6 @@ void UVRRootComponent::TickComponent(float DeltaTime, enum ELevelTick TickType,
638
641
}
639
642
else
640
643
{
641
-
642
644
// Run this first so we get full fidelity on the relative space calculation
643
645
FVector NewLocation = StoredCameraRotOffset.RotateVector (FVector (VRCapsuleOffset.X , VRCapsuleOffset.Y , 0 .0f )) + curCameraLoc;
644
646
FVector PlanerLocation = NewLocation - lastCameraLoc;
@@ -1545,7 +1547,7 @@ bool UVRRootComponent::IsLocallyControlled() const
1545
1547
GenerateOffsetToWorld();
1546
1548
}*/
1547
1549
1548
- if (!owningVRChar->bRetainRoomscale && !IsLocallyControlled ())
1550
+ if (!owningVRChar->bRetainRoomscale && !IsLocallyControlled () && ! IsNetMode (NM_DedicatedServer) )
1549
1551
{
1550
1552
// Don't smooth this change in mesh position
1551
1553
FNetworkPredictionData_Client_Character* ClientData = owningVRChar->GetCharacterMovement ()->GetPredictionData_Client_Character ();
0 commit comments