/// <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); }
/// <inheritdoc /> public override void Serialize(QNetMessageWriter writer) { writer.WriteInt16(ObjectIdentity); writer.WriteInt16(PrefabIdentity); writer.WriteInt16(OwnerIdentity); writer.WriteVector3(Position); writer.WriteVector3(Rotation.eulerAngles); writer.WriteVector3(Scale); }
/// <summary> /// Serializes current state of object from server side. /// In most cases used to update current state of object on all clients. /// </summary> public virtual void SerializeServerObjectState(QNetMessageWriter writer) { // serialize some cool data like for example: current animations or currently used tools by character }
/// <summary> /// Sends message to server. /// </summary> /// <param name="client">The Client.</param> /// <param name="channel">Channel of message.</param> /// <param name="method">Method of message sending.</param> /// <param name="writer">Message to send.</param> public static void Send(this QNetClient client, QNetUnityLocalChannel channel, QNetMessageMethod method, QNetMessageWriter writer) { client.Send((byte)channel, method, writer); }
/// <inheritdoc /> public override void Serialize(QNetMessageWriter writer) { writer.WriteInt16(ConnectionIdentity); writer.WriteString(NickName); }
/// <summary> /// Sends message to given connection. /// </summary> /// <param name="connection">The connection.</param> /// <param name="channel">Channel of message.</param> /// <param name="method">Method of message sending.</param> /// <param name="writer">Message to send.</param> public static void Send(this QNetConnection connection, QNetUnityLocalChannel channel, QNetMessageMethod method, QNetMessageWriter writer) { connection.Send((byte)channel, method, writer); }
/// <summary> /// Sends message to given connection. /// </summary> /// <param name="server">Our Server.</param> /// <param name="except">Message will be send to all connections except this.</param> /// <param name="channel">Channel of message.</param> /// <param name="method">Method of message sending.</param> /// <param name="writer">Message to send.</param> public static void SendToAll(this QNetServer server, QNetConnection except, QNetLocalHeader channel, QNetMessageMethod method, QNetMessageWriter writer) { server.SendToAll(except, (byte)channel, method, writer); }
/// <summary> /// Sends message to given connection. /// </summary> /// <param name="server">Our Server.</param> /// <param name="channel">Channel of message.</param> /// <param name="method">Method of message sending.</param> /// <param name="writer">Message to send.</param> public static void SendToAll(this QNetServer server, QNetLocalChannel channel, QNetMessageMethod method, QNetMessageWriter writer) { server.SendToAll((byte)channel, method, writer); }
/// <summary> /// Sends message to given connection. /// </summary> /// <param name="server">Our Server.</param> /// <param name="connection">Target connection of message.</param> /// <param name="channel">Channel of message.</param> /// <param name="method">Method of message sending.</param> /// <param name="writer">Message to send.</param> public static void Send(this QNetServer server, QNetConnection connection, QNetLocalChannel channel, QNetMessageMethod method, QNetMessageWriter writer) { server.Send(connection, (byte)channel, method, writer); }