/// <inheritdoc /> public override void DeSerialize(QNetMessageReader reader) { ObjectIdentity = reader.ReadInt16(); PrefabIdentity = reader.ReadInt16(); OwnerIdentity = reader.ReadInt16(); Position = reader.ReadVector3(); Rotation = Quaternion.Euler(reader.ReadVector3()); Scale = reader.ReadVector3(); }
internal static void OnServerObjectDelete(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle) { // read object identity to remove var objectIdentity = reader.ReadInt16(); // and do it! QNetWorldSerializer.RemoveSerializedObjectFromMemory(objectIdentity); }
internal static void OnPlayerDelete(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle) { JEMLogger.Log("QNet is receiving player delete event."); var connectionIdentity = reader.ReadInt16(); var player = QNetPlayer.GetQNetPlayer(connectionIdentity); if (player == null) { throw new InvalidOperationException("InvalidConnectionIdentityError"); } player.TagAsNotReady(); QNetPlayer.DestroyQNetPlayer(player); }
internal static void OnServerObjectState(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle) { if (!QNetWorldSerializer.WorldIsSerialized) { return; // system can't receive query data while initializing, } var objectIdentity = reader.ReadInt16(); var qNetObject = QNetObjectBehaviour.GetObject(objectIdentity); if (qNetObject == null) { if (QNetManager.PrintNetworkWarnings) { JEMLogger.LogWarning($"Local machine received QNetEntity state update message but object of identity {objectIdentity} not exists in local world."); } return; } qNetObject.DeSerializeServerState(reader); }
public static void OnClientEntityQuery(QNetMessage message, QNetMessageReader reader, ref bool disallowRecycle) { if (!QNetWorldSerializer.WorldIsSerialized) { return; // system can't receive entity query data while initializing, } var objectIdentity = reader.ReadInt16(); var qNetObject = QNetObjectBehaviour.GetObject(objectIdentity); if (qNetObject == null) { if (QNetManager.PrintNetworkWarnings) { JEMLogger.LogWarning( $"Local machine received QNetEntity query message but object of identity {objectIdentity} not exists in local world."); } return; } var entity = qNetObject.GetComponent <QNetEntity>(); if (entity == null) { throw new NullReferenceException( $"QNetEntity query target exists but does not have {nameof(QNetEntity)} based script."); } if (message.IsClientMessage) { QNetSimulation.ReceivedServerFrame = reader.ReadUInt32(); QNetSimulation.AdjustServerFrames = QNetSimulation.ReceivedServerFrame > QNetTime.ServerFrame; } var index = reader.ReadByte(); entity.InvokeNetworkMessage(index, reader); }
/// <inheritdoc /> public override void DeSerialize(QNetMessageReader reader) { ConnectionIdentity = reader.ReadInt16(); NickName = reader.ReadString(); }