diff --git a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs index 2348cbd..ea31a8f 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs @@ -266,12 +266,12 @@ namespace MLAPI using (BinaryWriter writer = new BinaryWriter(stream)) { //Write all indexes - writer.Write(dirtyFields.Length); + writer.Write((byte)dirtyFields.Length); + writer.Write(networkId); //NetId + writer.Write(networkedObject.GetOrderIndex(this)); //Behaviour OrderIndex for (byte i = 0; i < dirtyFields.Length; i++) { - writer.Write(networkId); - writer.Write(networkedObject.GetOrderIndex(this)); - writer.Write(i); //Index + writer.Write(i); //FieldIndex switch (syncedFieldTypes[i]) { case FieldType.Bool: @@ -332,8 +332,8 @@ namespace MLAPI break; } } - NetworkingManager.singleton.Send(clientId, "MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray()); } + NetworkingManager.singleton.Send(clientId, "MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray()); } } @@ -353,14 +353,14 @@ namespace MLAPI { //Write all indexes writer.Write(dirtyCount); + writer.Write(networkId); //NetId + writer.Write(networkedObject.GetOrderIndex(this)); //Behaviour OrderIndex for (byte i = 0; i < dirtyFields.Length; i++) { //Writes all the indexes of the dirty syncvars. if (dirtyFields[i] == true) { - writer.Write(networkId); - writer.Write(networkedObject.GetOrderIndex(this)); - writer.Write(i); //Index + writer.Write(i); //FieldIndex switch (syncedFieldTypes[i]) { case FieldType.Bool: @@ -425,8 +425,8 @@ namespace MLAPI dirtyFields[i] = false; } } - NetworkingManager.singleton.Send("MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray(), ownerClientId); } + NetworkingManager.singleton.Send("MLAPI_SYNC_VAR_UPDATE", "MLAPI_RELIABLE_FRAGMENTED_SEQUENCED", stream.ToArray()); } lastSyncTime = Time.time; } diff --git a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs index 96a6cba..cea2153 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs @@ -86,8 +86,7 @@ namespace MLAPI if(!childNetworkedBehaviours[i].networkedStartInvoked) { childNetworkedBehaviours[i].NetworkStart(); - if (NetworkingManager.singleton.isServer) - childNetworkedBehaviours[i].SyncVarInit(); + childNetworkedBehaviours[i].SyncVarInit(); } } } diff --git a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs index 839594f..578068f 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs @@ -451,6 +451,16 @@ namespace MLAPI //Custom message, invoke all message handlers if(targeted) { + if(!MessageManager.targetedMessages.ContainsKey(messageType)) + { + Debug.LogWarning("MLAPI: No handlers for the given messagetype"); + return; + } + else if(!MessageManager.targetedMessages[messageType].ContainsKey(targetNetworkId)) + { + Debug.LogWarning("MLAPI: No handlers for the given networkId"); + return; + } List handlerIds = MessageManager.targetedMessages[messageType][targetNetworkId]; for (int i = 0; i < handlerIds.Count; i++) { @@ -688,7 +698,7 @@ namespace MLAPI } } break; - case 9: + case 9: //Syncvar if (isClient) { using (MemoryStream messageReadStream = new MemoryStream(incommingData)) @@ -696,12 +706,12 @@ namespace MLAPI using (BinaryReader messageReader = new BinaryReader(messageReadStream)) { byte dirtyCount = messageReader.ReadByte(); - if(dirtyCount > 0) + uint netId = messageReader.ReadUInt32(); + ushort orderIndex = messageReader.ReadUInt16(); + if (dirtyCount > 0) { for (int i = 0; i < dirtyCount; i++) { - uint netId = messageReader.ReadUInt32(); //NetId the syncvar is from - ushort orderIndex = messageReader.ReadUInt16(); byte fieldIndex = messageReader.ReadByte(); if(!SpawnManager.spawnedObjects.ContainsKey(netId)) { diff --git a/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs b/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs index 3f348ea..71ddc9e 100644 --- a/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs +++ b/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs @@ -81,7 +81,7 @@ namespace MLAPI.MonoBehaviours.Prototyping writer.Write(transform.rotation.eulerAngles.z); } if (isServer) - SendToNonLocalClientsTarget("MLAPI_OnRecieveTransformFromClient", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer()); + SendToClientsTarget("MLAPI_OnRecieveTransformFromServer", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer()); else SendToServerTarget("MLAPI_OnRecieveTransformFromClient", "MLAPI_POSITION_UPDATE", writeStream.GetBuffer()); }