1
- using MLAPI . MonoBehaviours . Core ;
2
- using MLAPI . NetworkingManagerComponents ;
1
+ using MLAPI . NetworkingManagerComponents ;
3
2
using System ;
4
3
using System . Collections ;
5
4
using System . Collections . Generic ;
@@ -72,6 +71,8 @@ private ConnectionConfig Init(NetworkingConfiguration netConfig)
72
71
MessageManager . reverseMessageTypes = new Dictionary < ushort , string > ( ) ;
73
72
SpawnManager . spawnedObjects = new Dictionary < uint , NetworkedObject > ( ) ;
74
73
SpawnManager . releasedNetworkObjectIds = new Stack < uint > ( ) ;
74
+ NetworkPoolManager . Pools = new Dictionary < ushort , Data . NetworkPool > ( ) ;
75
+ NetworkPoolManager . PoolNamesToIndexes = new Dictionary < string , ushort > ( ) ;
75
76
NetworkSceneManager . registeredSceneNames = new HashSet < string > ( ) ;
76
77
NetworkSceneManager . sceneIndexToString = new Dictionary < uint , string > ( ) ;
77
78
NetworkSceneManager . sceneNameToIndex = new Dictionary < string , uint > ( ) ;
@@ -98,6 +99,8 @@ private ConnectionConfig Init(NetworkingConfiguration netConfig)
98
99
MessageManager . messageTypes . Add ( "MLAPI_CLIENT_DISCONNECT" , 3 ) ;
99
100
MessageManager . messageTypes . Add ( "MLAPI_DESTROY_OBJECT" , 4 ) ;
100
101
MessageManager . messageTypes . Add ( "MLAPI_SWITCH_SCENE" , 5 ) ;
102
+ MessageManager . messageTypes . Add ( "MLAPI_SPAWN_POOL_OBJECT" , 6 ) ;
103
+ MessageManager . messageTypes . Add ( "MLAPI_DESTROY_POOL_OBJECT" , 7 ) ;
101
104
NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromClient" ) ;
102
105
NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromServer" ) ;
103
106
@@ -488,13 +491,15 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
488
491
uint networkId = messageReader . ReadUInt32 ( ) ;
489
492
int ownerId = messageReader . ReadInt32 ( ) ;
490
493
int prefabId = messageReader . ReadInt32 ( ) ;
494
+ bool isActive = messageReader . ReadBoolean ( ) ;
491
495
if ( isPlayerObject )
492
496
{
493
497
SpawnManager . SpawnPlayerObject ( ownerId , networkId ) ;
494
498
}
495
499
else
496
500
{
497
- SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
501
+ GameObject go = SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
502
+ go . SetActive ( isActive ) ;
498
503
}
499
504
}
500
505
}
@@ -578,6 +583,40 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
578
583
}
579
584
}
580
585
break ;
586
+ case 6 : //Spawn pool object
587
+ if ( isClient )
588
+ {
589
+ using ( MemoryStream messageReadStream = new MemoryStream ( incommingData ) )
590
+ {
591
+ using ( BinaryReader messageReader = new BinaryReader ( messageReadStream ) )
592
+ {
593
+ uint netId = messageReader . ReadUInt32 ( ) ;
594
+ float xPos = messageReader . ReadSingle ( ) ;
595
+ float yPos = messageReader . ReadSingle ( ) ;
596
+ float zPos = messageReader . ReadSingle ( ) ;
597
+ float xRot = messageReader . ReadSingle ( ) ;
598
+ float yRot = messageReader . ReadSingle ( ) ;
599
+ float zRot = messageReader . ReadSingle ( ) ;
600
+ SpawnManager . spawnedObjects [ netId ] . transform . position = new Vector3 ( xPos , yPos , zPos ) ;
601
+ SpawnManager . spawnedObjects [ netId ] . transform . rotation = Quaternion . Euler ( new Vector3 ( xRot , yRot , zRot ) ) ;
602
+ SpawnManager . spawnedObjects [ netId ] . gameObject . SetActive ( true ) ;
603
+ }
604
+ }
605
+ }
606
+ break ;
607
+ case 7 : //Destroy pool object
608
+ if ( isClient )
609
+ {
610
+ using ( MemoryStream messageReadStream = new MemoryStream ( incommingData ) )
611
+ {
612
+ using ( BinaryReader messageReader = new BinaryReader ( messageReadStream ) )
613
+ {
614
+ uint netId = messageReader . ReadUInt32 ( ) ;
615
+ SpawnManager . spawnedObjects [ netId ] . gameObject . SetActive ( false ) ;
616
+ }
617
+ }
618
+ }
619
+ break ;
581
620
}
582
621
}
583
622
}
@@ -943,6 +982,7 @@ private void HandleApproval(int clientId, bool approved)
943
982
writer . Write ( pair . Value . NetworkId ) ;
944
983
writer . Write ( pair . Value . OwnerClientId ) ;
945
984
writer . Write ( pair . Value . SpawnablePrefabIndex ) ;
985
+ writer . Write ( pair . Value . gameObject . activeInHierarchy ) ;
946
986
}
947
987
}
948
988
}
0 commit comments