/// <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); }