@@ -247,32 +247,47 @@ private ConnectionConfig Init()
247
247
} ;
248
248
249
249
//MLAPI channels and messageTypes
250
- NetworkConfig . Channels . Add ( new Channel ( )
250
+ List < Channel > internalChannels = new List < Channel > ( ) ;
251
+ internalChannels . Add ( new Channel ( )
251
252
{
252
253
Name = "MLAPI_INTERNAL" ,
253
254
Type = QosType . ReliableFragmentedSequenced
254
255
} ) ;
255
- NetworkConfig . Channels . Add ( new Channel ( )
256
+ internalChannels . Add ( new Channel ( )
256
257
{
257
258
Name = "MLAPI_POSITION_UPDATE" ,
258
259
Type = QosType . StateUpdate
259
260
} ) ;
260
- NetworkConfig . Channels . Add ( new Channel ( )
261
+ internalChannels . Add ( new Channel ( )
261
262
{
262
263
Name = "MLAPI_ANIMATION_UPDATE" ,
263
264
Type = QosType . ReliableSequenced
264
265
} ) ;
265
- NetworkConfig . Channels . Add ( new Channel ( )
266
+ internalChannels . Add ( new Channel ( )
266
267
{
267
268
Name = "MLAPI_NAV_AGENT_STATE" ,
268
269
Type = QosType . ReliableSequenced
269
270
} ) ;
270
- NetworkConfig . Channels . Add ( new Channel ( )
271
+ internalChannels . Add ( new Channel ( )
271
272
{
272
273
Name = "MLAPI_NAV_AGENT_CORRECTION" ,
273
274
Type = QosType . StateUpdate
274
275
} ) ;
275
276
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
+
276
291
MessageManager . messageTypes . Add ( "MLAPI_CONNECTION_REQUEST" , 0 ) ;
277
292
MessageManager . messageTypes . Add ( "MLAPI_CONNECTION_APPROVED" , 1 ) ;
278
293
MessageManager . messageTypes . Add ( "MLAPI_ADD_OBJECT" , 2 ) ;
@@ -283,13 +298,15 @@ private ConnectionConfig Init()
283
298
MessageManager . messageTypes . Add ( "MLAPI_DESTROY_POOL_OBJECT" , 7 ) ;
284
299
MessageManager . messageTypes . Add ( "MLAPI_CHANGE_OWNER" , 8 ) ;
285
300
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" ) ;
293
310
294
311
if ( NetworkConfig . EnableSceneSwitching )
295
312
{
@@ -334,7 +351,6 @@ private ConnectionConfig Init()
334
351
}
335
352
}
336
353
337
- HashSet < string > channelNames = new HashSet < string > ( ) ;
338
354
for ( int i = 0 ; i < NetworkConfig . Channels . Count ; i ++ )
339
355
{
340
356
if ( channelNames . Contains ( NetworkConfig . Channels [ i ] . Name ) )
@@ -350,10 +366,10 @@ private ConnectionConfig Init()
350
366
351
367
//0-32 are reserved for MLAPI messages
352
368
ushort messageId = 32 ;
353
- for ( ushort i = 0 ; i < NetworkConfig . MessageTypes . Count ; i ++ )
369
+ for ( ushort i = 0 ; i < messageTypes . Count ; i ++ )
354
370
{
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 ] ) ;
357
373
messageId ++ ;
358
374
}
359
375
return cConfig ;
0 commit comments