/// <summary>
        ///     Writes vector3.
        /// </summary>
        public static void WriteFixedVector3(this QNetMessageWriter writer, Vector3 previous, Vector3 vector,
                                             float step = 0.1f)
        {
            var flag = NetworkVectorAxis.None;

            if (Mathf.Abs(previous.x - vector.x) > step)
            {
                flag |= NetworkVectorAxis.X;
            }

            if (Mathf.Abs(previous.y - vector.y) > step)
            {
                flag |= NetworkVectorAxis.Y;
            }

            if (Mathf.Abs(previous.z - vector.z) > step)
            {
                flag |= NetworkVectorAxis.Z;
            }

            writer.WriteByte((byte)flag);
            if (flag.HasFlag(NetworkVectorAxis.X))
            {
                writer.WriteSingle(vector.x);
            }
            if (flag.HasFlag(NetworkVectorAxis.Y))
            {
                writer.WriteSingle(vector.y);
            }
            if (flag.HasFlag(NetworkVectorAxis.Z))
            {
                writer.WriteSingle(vector.z);
            }
        }
 /// <summary>
 ///     Writes vector4.
 /// </summary>
 public static void WriteVector4(this QNetMessageWriter writer, Vector4 vector)
 {
     writer.WriteSingle(vector.x);
     writer.WriteSingle(vector.y);
     writer.WriteSingle(vector.z);
     writer.WriteSingle(vector.w);
 }