@@ -238,6 +238,12 @@ internal void SyncVarInit()
238
238
syncedFieldValues . Add ( sortedFields [ i ] . GetValue ( this ) ) ;
239
239
syncedFieldTypes . Add ( FieldType . Quaternion ) ;
240
240
}
241
+ else if ( sortedFields [ i ] . FieldType == typeof ( byte [ ] ) )
242
+ {
243
+ syncedFields . Add ( sortedFields [ i ] ) ;
244
+ syncedFieldValues . Add ( sortedFields [ i ] . GetValue ( this ) ) ;
245
+ syncedFieldTypes . Add ( FieldType . ByteArray ) ;
246
+ }
241
247
else
242
248
{
243
249
Debug . LogError ( "MLAPI: The type " + sortedFields [ i ] . FieldType . ToString ( ) + " can not be used as a syncvar" ) ;
@@ -331,6 +337,10 @@ internal void FlushToClient(int clientId)
331
337
writer . Write ( euler . y ) ;
332
338
writer . Write ( euler . z ) ;
333
339
break ;
340
+ case FieldType . ByteArray :
341
+ writer . Write ( ( ushort ) ( ( byte [ ] ) syncedFields [ i ] . GetValue ( this ) ) . Length ) ;
342
+ writer . Write ( ( byte [ ] ) syncedFields [ i ] . GetValue ( this ) ) ;
343
+ break ;
334
344
}
335
345
}
336
346
}
@@ -420,6 +430,10 @@ internal void SyncVarUpdate()
420
430
writer . Write ( euler . y ) ;
421
431
writer . Write ( euler . z ) ;
422
432
break ;
433
+ case FieldType . ByteArray :
434
+ writer . Write ( ( ushort ) ( ( byte [ ] ) syncedFields [ i ] . GetValue ( this ) ) . Length ) ;
435
+ writer . Write ( ( byte [ ] ) syncedFields [ i ] . GetValue ( this ) ) ;
436
+ break ;
423
437
424
438
}
425
439
syncedFieldValues [ i ] = syncedFields [ i ] . GetValue ( this ) ;
@@ -537,6 +551,12 @@ private void SetDirtyness()
537
551
else
538
552
dirtyFields [ i ] = false ; //Up to date
539
553
break ;
554
+ case FieldType . ByteArray :
555
+ if ( ( ( byte [ ] ) syncedFields [ i ] . GetValue ( this ) ) . SequenceEqual ( ( ( byte [ ] ) syncedFieldValues [ i ] ) ) )
556
+ dirtyFields [ i ] = true ; //This fields value is out of sync!
557
+ else
558
+ dirtyFields [ i ] = false ; //Up to date
559
+ break ;
540
560
}
541
561
}
542
562
}
0 commit comments