This commit is contained in:
MrGadget 2024-11-13 03:12:52 +02:00 committed by GitHub
commit dc7a3c750f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -119,6 +119,23 @@ public uint sendIntervalMultiplier
protected double timeStampAdjustment => NetworkServer.sendInterval * (sendIntervalMultiplier - 1); protected double timeStampAdjustment => NetworkServer.sendInterval * (sendIntervalMultiplier - 1);
protected double offset => timelineOffset ? NetworkServer.sendInterval * sendIntervalMultiplier : 0; protected double offset => timelineOffset ? NetworkServer.sendInterval * sendIntervalMultiplier : 0;
[Header("Velocity")]
[ReadOnly, SerializeField] Vector3 _velocity;
[ReadOnly, SerializeField] Vector3 _angVelocity;
public Vector3 velocity
{
get => _velocity;
internal set => _velocity = value;
}
public Vector3 angVelocity
{
get => _angVelocity;
internal set => _angVelocity = value;
}
// debugging /////////////////////////////////////////////////////////// // debugging ///////////////////////////////////////////////////////////
[Header("Debug")] [Header("Debug")]
public bool showGizmos; public bool showGizmos;
@ -263,6 +280,14 @@ protected virtual void Apply(TransformSnapshot interpolated, TransformSnapshot e
// -> but simply don't apply it. if the user doesn't want to sync // -> but simply don't apply it. if the user doesn't want to sync
// scale, then we should not touch scale etc. // scale, then we should not touch scale etc.
// Calculate the velocity and angular velocity for the object
// These can be used to drive animations or other behaviours
if (!isOwned)
{
velocity = (transform.position - interpolated.position) / Time.deltaTime;
angVelocity = (transform.rotation.eulerAngles - interpolated.rotation.eulerAngles) / Time.deltaTime;
}
// interpolate parts // interpolate parts
if (syncPosition) SetPosition(interpolatePosition ? interpolated.position : endGoal.position); if (syncPosition) SetPosition(interpolatePosition ? interpolated.position : endGoal.position);
if (syncRotation) SetRotation(interpolateRotation ? interpolated.rotation : endGoal.rotation); if (syncRotation) SetRotation(interpolateRotation ? interpolated.rotation : endGoal.rotation);