1234567891011121314151617181920212223242526272829303132 |
- using UnityEngine;
- namespace Mirror.Examples.LagCompensationDemo
- {
- public struct Capture2D : Capture
- {
- public double timestamp { get; set; }
- public Vector2 position;
- public Vector2 size;
- public Capture2D(double timestamp, Vector2 position, Vector2 size)
- {
- this.timestamp = timestamp;
- this.position = position;
- this.size = size;
- }
- public void DrawGizmo()
- {
- Gizmos.DrawWireCube(position, size);
- }
- public static Capture2D Interpolate(Capture2D from, Capture2D to, double t) =>
- new Capture2D(
- 0, // interpolated snapshot is applied directly. don't need timestamps.
- Vector2.LerpUnclamped(from.position, to.position, (float)t),
- Vector2.LerpUnclamped(from.size, to.size, (float)t)
- );
- public override string ToString() => $"(time={timestamp} pos={position} size={size})";
- }
- }
|