public static Quaternion UnserializeRotation3D(P2PNetworkReader reader, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression) { Quaternion identity = Quaternion.identity; Vector3 zero = Vector3.zero; switch (mode) { case ReplicatedTransform.AxisSyncMode.AxisX: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, 0f); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisY: zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), 0f); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisZ: zero.Set(0f, 0f, ReplicatedTransform.ReadAngle(reader, compression)); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisXY: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), 0f); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisXZ: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, ReplicatedTransform.ReadAngle(reader, compression)); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisYZ: zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression)); identity.eulerAngles = zero; break; case ReplicatedTransform.AxisSyncMode.AxisXYZ: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression)); identity.eulerAngles = zero; break; } return(identity); }
public static void SerializeRotation3D(P2PNetworkWriter writer, Quaternion rot, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression) { switch (mode) { case ReplicatedTransform.AxisSyncMode.None: break; case ReplicatedTransform.AxisSyncMode.AxisX: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression); return; case ReplicatedTransform.AxisSyncMode.AxisY: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression); return; case ReplicatedTransform.AxisSyncMode.AxisZ: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXY: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression); ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXZ: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression); ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisYZ: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression); ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXYZ: ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.x, compression); ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.y, compression); ReplicatedTransform.WriteAngle(writer, rot.eulerAngles.z, compression); break; default: return; } }
public static Vector3 UnserializeSpin3D(P2PNetworkReader reader, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression) { Vector3 zero = Vector3.zero; switch (mode) { case ReplicatedTransform.AxisSyncMode.AxisX: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, 0f); break; case ReplicatedTransform.AxisSyncMode.AxisY: zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), 0f); break; case ReplicatedTransform.AxisSyncMode.AxisZ: zero.Set(0f, 0f, ReplicatedTransform.ReadAngle(reader, compression)); break; case ReplicatedTransform.AxisSyncMode.AxisXY: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), 0f); break; case ReplicatedTransform.AxisSyncMode.AxisXZ: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), 0f, ReplicatedTransform.ReadAngle(reader, compression)); break; case ReplicatedTransform.AxisSyncMode.AxisYZ: zero.Set(0f, ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression)); break; case ReplicatedTransform.AxisSyncMode.AxisXYZ: zero.Set(ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression), ReplicatedTransform.ReadAngle(reader, compression)); break; } return(zero); }
public static void SerializeSpin3D(P2PNetworkWriter writer, Vector3 angularVelocity, ReplicatedTransform.AxisSyncMode mode, ReplicatedTransform.CompressionSyncMode compression) { switch (mode) { case ReplicatedTransform.AxisSyncMode.None: break; case ReplicatedTransform.AxisSyncMode.AxisX: ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression); return; case ReplicatedTransform.AxisSyncMode.AxisY: ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression); return; case ReplicatedTransform.AxisSyncMode.AxisZ: ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXY: ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression); ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXZ: ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression); ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisYZ: ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression); ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression); return; case ReplicatedTransform.AxisSyncMode.AxisXYZ: ReplicatedTransform.WriteAngle(writer, angularVelocity.x, compression); ReplicatedTransform.WriteAngle(writer, angularVelocity.y, compression); ReplicatedTransform.WriteAngle(writer, angularVelocity.z, compression); break; default: return; } }