1234567891011121314151617181920212223242526 |
- // a simple snapshot with timestamp & interpolation
- using UnityEngine;
- namespace Mirror.Examples.SnapshotInterpolationDemo
- {
- public struct Snapshot3D : Snapshot
- {
- public double remoteTime { get; set; }
- public double localTime { get; set; }
- public Vector3 position;
- public Snapshot3D(double remoteTime, double localTime, Vector3 position)
- {
- this.remoteTime = remoteTime;
- this.localTime = localTime;
- this.position = position;
- }
- public static Snapshot3D Interpolate(Snapshot3D from, Snapshot3D to, double t) =>
- new Snapshot3D(
- // interpolated snapshot is applied directly. don't need timestamps.
- 0, 0,
- // lerp unclamped in case we ever need to extrapolate.
- Vector3.LerpUnclamped(from.position, to.position, (float)t));
- }
- }
|