private void TrackFrameHistory()
{
if (OwningNetWorker.IsServer)
return;
byte serverFrame = (byte)(targetFrame - NetworkingManager.Instance.GetFrameCountFromTime(OwningNetWorker.PreviousServerPing));
//Idea is to store the frames as they come down and
Vector3 nextPos = frameHistory.UpdateFrame(OwningNetWorker, AuthoritativeFrameType.Position, transform.position, serverFrame, targetPosition, ref previousAuthoritativePosition);
transform.position = nextPos;
Vector3 nextRot = frameHistory.UpdateFrame(OwningNetWorker, AuthoritativeFrameType.Rotation, transform.rotation.eulerAngles, serverFrame, targetRotation, ref previousAuthoritativeRotation);
transform.rotation = Quaternion.Euler(nextRot);
Vector3 nextScale = frameHistory.UpdateFrame(OwningNetWorker, AuthoritativeFrameType.Scale, transform.localScale, serverFrame, targetScale, ref previousAuthoritativeScale);
transform.localScale = nextScale;
}