コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
            }
        }