@@ -38,9 +38,6 @@ internal enum NExec
3838 Client = 2
3939 }
4040
41- /// <summary>
42- /// This is a temporary solution for channel names and the below hardcoded value might not be mandatory in the future.
43- /// </summary>
4441 private const string StandardRpc_ChannelName = "STDRPC" ;
4542
4643#pragma warning disable 414
@@ -52,8 +49,17 @@ internal enum NExec
5249 internal BitWriter BeginSendServerRpc ( ServerRpcSendParams sendParams , bool isReliable )
5350 {
5451 var rpcQueueMananger = NetworkingManager . Singleton . RpcQueueManager ;
52+ if ( rpcQueueMananger == null )
53+ {
54+ return null ;
55+ }
56+
57+ var writer = rpcQueueMananger . BeginAddQueueItemToOutboundFrame ( RPCQueueManager . QueueItemType . ServerRpc , Time . realtimeSinceStartup , StandardRpc_ChannelName , 0 , NetworkingManager . Singleton . ServerClientId , null ) ;
58+ writer . WriteBit ( false ) ; // Encrypted
59+ writer . WriteBit ( false ) ; // Authenticated
60+ writer . WriteBits ( MLAPIConstants . MLAPI_SERVER_RPC , 6 ) ; // MessageType
61+
5562
56- var writer = rpcQueueMananger . BeginAddQueueItemToOutboundFrame ( RpcQueueContainer . QueueItemType . ServerRpc , Time . realtimeSinceStartup , StandardRpc_ChannelName , 0 , NetworkingManager . Singleton . ServerClientId , null ) ;
5763 writer . WriteUInt64Packed ( NetworkId ) ; // NetworkObjectId
5864 writer . WriteUInt16Packed ( GetBehaviourId ( ) ) ; // NetworkBehaviourId
5965
@@ -84,8 +90,30 @@ internal BitWriter BeginSendClientRpc(ClientRpcSendParams sendParams, bool isRel
8490 {
8591 //This will start a new queue item entry and will then return the writer to the current frame's stream
8692 var rpcQueueMananger = NetworkingManager . Singleton . RpcQueueManager ;
93+ if ( rpcQueueMananger == null )
94+ {
95+ return null ;
96+ }
97+
98+ ulong [ ] TargetIds = sendParams . TargetClientIds ;
99+ if ( TargetIds == null )
100+ {
101+ if ( ( NetworkingManager . Singleton . ConnectedClientsList . Count > 0 ) )
102+ {
103+ var FirstPass = NetworkingManager . Singleton . ConnectedClientsList . Select ( c => c . ClientId ) . ToList ( ) ;
104+ FirstPass . Remove ( NetworkingManager . Singleton . ServerClientId ) ;
105+ TargetIds = FirstPass . ToArray ( ) ;
106+ }
107+ }
108+
109+ //var writer = rpcQueueMananger.BeginAddQueueItemToOutboundFrame(RPCQueueManager.QueueItemType.ClientRpc, Time.realtimeSinceStartup, StandardRpc_ChannelName, 0, NetworkId, sendParams.TargetClientIds ?? NetworkingManager.Singleton.ConnectedClientsList.Select(c => c.ClientId).ToArray());
110+ var writer = rpcQueueMananger . BeginAddQueueItemToOutboundFrame ( RPCQueueManager . QueueItemType . ClientRpc , Time . realtimeSinceStartup , StandardRpc_ChannelName , 0 , NetworkId , TargetIds ) ;
111+ writer . WriteBit ( false ) ; // Encrypted
112+ writer . WriteBit ( false ) ; // Authenticated
113+ writer . WriteBits ( MLAPIConstants . MLAPI_CLIENT_RPC , 6 ) ; // MessageType
114+
115+
87116
88- var writer = rpcQueueMananger . BeginAddQueueItemToOutboundFrame ( RpcQueueContainer . QueueItemType . ClientRpc , Time . realtimeSinceStartup , StandardRpc_ChannelName , 0 , NetworkId , sendParams . TargetClientIds ?? NetworkingManager . Singleton . ConnectedClientsList . Select ( c => c . ClientId ) . ToArray ( ) ) ;
89117 writer . WriteUInt64Packed ( NetworkId ) ; // NetworkObjectId
90118 writer . WriteUInt16Packed ( GetBehaviourId ( ) ) ; // NetworkBehaviourId
91119
0 commit comments