/// <summary> /// Reads a compressed quaternion from a reader. /// </summary> /// <param name="reader"></param> /// <returns></returns> public static Quaternion ReadCompressedQuaternion(NetworkReader reader) { byte largest = reader.ReadByte(); short a = 0, b = 0, c = 0; if (!Quaternions.UseLargestOnly(largest)) { a = reader.ReadInt16(); b = reader.ReadInt16(); c = reader.ReadInt16(); } return(Quaternions.DecompressQuaternion(largest, a, b, c)); }
/// <summary> /// Writes a compressed quaternion to a writer. /// </summary> /// <param name="writer"></param> /// <param name="rotation"></param> public static void WriteCompressedQuaternion(NetworkWriter writer, Quaternion rotation) { byte largest; short a, b, c; Quaternions.CompressQuaternion(rotation, out largest, out a, out b, out c); writer.WriteByte(largest); if (!Quaternions.UseLargestOnly(largest)) { writer.WriteInt16(a); writer.WriteInt16(b); writer.WriteInt16(c); } }