mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-17 18:40:33 +00:00
feat(NetworkTranformBase): Provide velocity and angular velocity
This commit is contained in:
parent
70351d96f4
commit
2508cfd618
@ -119,6 +119,23 @@ public uint sendIntervalMultiplier
|
||||
protected double timeStampAdjustment => NetworkServer.sendInterval * (sendIntervalMultiplier - 1);
|
||||
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 ///////////////////////////////////////////////////////////
|
||||
[Header("Debug")]
|
||||
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
|
||||
// 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
|
||||
if (syncPosition) SetPosition(interpolatePosition ? interpolated.position : endGoal.position);
|
||||
if (syncRotation) SetRotation(interpolateRotation ? interpolated.rotation : endGoal.rotation);
|
||||
|
Loading…
Reference in New Issue
Block a user