Browse Source

add Eiderens suggestion

Doprez 1 year ago
parent
commit
a3004ca4bb
1 changed files with 5 additions and 3 deletions
  1. 5 3
      en/manual/physics/fix-physics-jitter.md

+ 5 - 3
en/manual/physics/fix-physics-jitter.md

@@ -21,16 +21,18 @@ public class SmoothFollowAndRotate : SyncScript
 
 
 	public override void Update()
 	public override void Update()
 	{
 	{
-		var deltaTime = (float)this.Game.UpdateTime.Elapsed.TotalSeconds;
+		var deltaTime = (float)Game.UpdateTime.Elapsed.TotalSeconds;
 		var currentPosition = Entity.Transform.Position;
 		var currentPosition = Entity.Transform.Position;
 		var currentRotation = Entity.Transform.Rotation;
 		var currentRotation = Entity.Transform.Rotation;
 
 
+		var lerpSpeed = 1f - MathF.Exp(-Speed * deltaTime);
+
 		EntityToFollow.Transform.GetWorldTransformation(out var otherPosition, out var otherRotation, out var _);
 		EntityToFollow.Transform.GetWorldTransformation(out var otherPosition, out var otherRotation, out var _);
 
 
-		var newPosition = Vector3.Lerp(currentPosition, otherPosition, Speed * deltaTime);
+		var newPosition = Vector3.Lerp(currentPosition, otherPosition, lerpSpeed);
 		Entity.Transform.Position = newPosition;
 		Entity.Transform.Position = newPosition;
 
 
-		Quaternion.Slerp(ref currentRotation, ref otherRotation, Speed * deltaTime, out var newRotation);
+		Quaternion.Slerp(ref currentRotation, ref otherRotation, lerpSpeed, out var newRotation);
 		Entity.Transform.Rotation = newRotation;
 		Entity.Transform.Rotation = newRotation;
 	}
 	}
 }
 }