1- using MLAPI . MonoBehaviours . Core ;
2- using MLAPI . NetworkingManagerComponents ;
1+ using MLAPI . NetworkingManagerComponents ;
32using System ;
43using System . Collections ;
54using System . Collections . Generic ;
@@ -72,6 +71,8 @@ private ConnectionConfig Init(NetworkingConfiguration netConfig)
7271 MessageManager . reverseMessageTypes = new Dictionary < ushort , string > ( ) ;
7372 SpawnManager . spawnedObjects = new Dictionary < uint , NetworkedObject > ( ) ;
7473 SpawnManager . releasedNetworkObjectIds = new Stack < uint > ( ) ;
74+ NetworkPoolManager . Pools = new Dictionary < ushort , Data . NetworkPool > ( ) ;
75+ NetworkPoolManager . PoolNamesToIndexes = new Dictionary < string , ushort > ( ) ;
7576 NetworkSceneManager . registeredSceneNames = new HashSet < string > ( ) ;
7677 NetworkSceneManager . sceneIndexToString = new Dictionary < uint , string > ( ) ;
7778 NetworkSceneManager . sceneNameToIndex = new Dictionary < string , uint > ( ) ;
@@ -98,6 +99,8 @@ private ConnectionConfig Init(NetworkingConfiguration netConfig)
9899 MessageManager . messageTypes . Add ( "MLAPI_CLIENT_DISCONNECT" , 3 ) ;
99100 MessageManager . messageTypes . Add ( "MLAPI_DESTROY_OBJECT" , 4 ) ;
100101 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 ) ;
101104 NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromClient" ) ;
102105 NetworkConfig . MessageTypes . Add ( "MLAPI_OnRecieveTransformFromServer" ) ;
103106
@@ -488,13 +491,15 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
488491 uint networkId = messageReader . ReadUInt32 ( ) ;
489492 int ownerId = messageReader . ReadInt32 ( ) ;
490493 int prefabId = messageReader . ReadInt32 ( ) ;
494+ bool isActive = messageReader . ReadBoolean ( ) ;
491495 if ( isPlayerObject )
492496 {
493497 SpawnManager . SpawnPlayerObject ( ownerId , networkId ) ;
494498 }
495499 else
496500 {
497- SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
501+ GameObject go = SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
502+ go . SetActive ( isActive ) ;
498503 }
499504 }
500505 }
@@ -578,6 +583,40 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
578583 }
579584 }
580585 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 ;
581620 }
582621 }
583622 }
@@ -943,6 +982,7 @@ private void HandleApproval(int clientId, bool approved)
943982 writer . Write ( pair . Value . NetworkId ) ;
944983 writer . Write ( pair . Value . OwnerClientId ) ;
945984 writer . Write ( pair . Value . SpawnablePrefabIndex ) ;
985+ writer . Write ( pair . Value . gameObject . activeInHierarchy ) ;
946986 }
947987 }
948988 }
0 commit comments