@@ -247,32 +247,47 @@ private ConnectionConfig Init()
247247 } ;
248248
249249 //MLAPI channels and messageTypes
250- NetworkConfig . Channels . Add ( new Channel ( )
250+ List < Channel > internalChannels = new List < Channel > ( ) ;
251+ internalChannels . Add ( new Channel ( )
251252 {
252253 Name = "MLAPI_INTERNAL" ,
253254 Type = QosType . ReliableFragmentedSequenced
254255 } ) ;
255- NetworkConfig . Channels . Add ( new Channel ( )
256+ internalChannels . Add ( new Channel ( )
256257 {
257258 Name = "MLAPI_POSITION_UPDATE" ,
258259 Type = QosType . StateUpdate
259260 } ) ;
260- NetworkConfig . Channels . Add ( new Channel ( )
261+ internalChannels . Add ( new Channel ( )
261262 {
262263 Name = "MLAPI_ANIMATION_UPDATE" ,
263264 Type = QosType . ReliableSequenced
264265 } ) ;
265- NetworkConfig . Channels . Add ( new Channel ( )
266+ internalChannels . Add ( new Channel ( )
266267 {
267268 Name = "MLAPI_NAV_AGENT_STATE" ,
268269 Type = QosType . ReliableSequenced
269270 } ) ;
270- NetworkConfig . Channels . Add ( new Channel ( )
271+ internalChannels . Add ( new Channel ( )
271272 {
272273 Name = "MLAPI_NAV_AGENT_CORRECTION" ,
273274 Type = QosType . StateUpdate
274275 } ) ;
275276
277+ HashSet < string > channelNames = new HashSet < string > ( ) ;
278+ for ( int i = 0 ; i < internalChannels . Count ; i ++ )
279+ {
280+ if ( channelNames . Contains ( internalChannels [ i ] . Name ) )
281+ {
282+ Debug . LogWarning ( "MLAPI: Duplicate channel name: " + NetworkConfig . Channels [ i ] . Name ) ;
283+ continue ;
284+ }
285+ int channelId = cConfig . AddChannel ( internalChannels [ i ] . Type ) ;
286+ MessageManager . channels . Add ( internalChannels [ i ] . Name , channelId ) ;
287+ channelNames . Add ( internalChannels [ i ] . Name ) ;
288+ MessageManager . reverseChannels . Add ( channelId , internalChannels [ i ] . Name ) ;
289+ }
290+
276291 MessageManager . messageTypes . Add ( "MLAPI_CONNECTION_REQUEST" , 0 ) ;
277292 MessageManager . messageTypes . Add ( "MLAPI_CONNECTION_APPROVED" , 1 ) ;
278293 MessageManager . messageTypes . Add ( "MLAPI_ADD_OBJECT" , 2 ) ;
@@ -283,13 +298,15 @@ private ConnectionConfig Init()
283298 MessageManager . messageTypes . Add ( "MLAPI_DESTROY_POOL_OBJECT" , 7 ) ;
284299 MessageManager . messageTypes . Add ( "MLAPI_CHANGE_OWNER" , 8 ) ;
285300 MessageManager . messageTypes . Add ( "MLAPI_SYNC_VAR_UPDATE" , 9 ) ;
286- NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromClient" ) ;
287- NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromServer" ) ;
288- NetworkConfig . MessageTypes . Add ( "MLAPI_HandleAnimationMessage" ) ;
289- NetworkConfig . MessageTypes . Add ( "MLAPI_HandleAnimationParameterMessage" ) ;
290- NetworkConfig . MessageTypes . Add ( "MLAPI_HandleAnimationTriggerMessage" ) ;
291- NetworkConfig . MessageTypes . Add ( "MLAPI_OnNavMeshStateUpdate" ) ;
292- NetworkConfig . MessageTypes . Add ( "MLAPI_OnNavMeshCorrectionUpdate" ) ;
301+
302+ List < string > messageTypes = new List < string > ( NetworkConfig . MessageTypes ) ;
303+ messageTypes . Add ( "MLAPI_OnRecieveTransformFromClient" ) ;
304+ messageTypes . Add ( "MLAPI_OnRecieveTransformFromServer" ) ;
305+ messageTypes . Add ( "MLAPI_HandleAnimationMessage" ) ;
306+ messageTypes . Add ( "MLAPI_HandleAnimationParameterMessage" ) ;
307+ messageTypes . Add ( "MLAPI_HandleAnimationTriggerMessage" ) ;
308+ messageTypes . Add ( "MLAPI_OnNavMeshStateUpdate" ) ;
309+ messageTypes . Add ( "MLAPI_OnNavMeshCorrectionUpdate" ) ;
293310
294311 if ( NetworkConfig . EnableSceneSwitching )
295312 {
@@ -334,7 +351,6 @@ private ConnectionConfig Init()
334351 }
335352 }
336353
337- HashSet < string > channelNames = new HashSet < string > ( ) ;
338354 for ( int i = 0 ; i < NetworkConfig . Channels . Count ; i ++ )
339355 {
340356 if ( channelNames . Contains ( NetworkConfig . Channels [ i ] . Name ) )
@@ -350,10 +366,10 @@ private ConnectionConfig Init()
350366
351367 //0-32 are reserved for MLAPI messages
352368 ushort messageId = 32 ;
353- for ( ushort i = 0 ; i < NetworkConfig . MessageTypes . Count ; i ++ )
369+ for ( ushort i = 0 ; i < messageTypes . Count ; i ++ )
354370 {
355- MessageManager . messageTypes . Add ( NetworkConfig . MessageTypes [ i ] , messageId ) ;
356- MessageManager . reverseMessageTypes . Add ( messageId , NetworkConfig . MessageTypes [ i ] ) ;
371+ MessageManager . messageTypes . Add ( messageTypes [ i ] , messageId ) ;
372+ MessageManager . reverseMessageTypes . Add ( messageId , messageTypes [ i ] ) ;
357373 messageId ++ ;
358374 }
359375 return cConfig ;
0 commit comments