@@ -752,6 +752,7 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
752
752
}
753
753
if ( NetworkConfig . HandleObjectSpawning )
754
754
{
755
+ SpawnManager . DestroyUnspawnedObjects ( ) ;
755
756
int objectCount = messageReader . ReadInt32 ( ) ;
756
757
for ( int i = 0 ; i < objectCount ; i ++ )
757
758
{
@@ -760,13 +761,24 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
760
761
int ownerId = messageReader . ReadInt32 ( ) ;
761
762
int prefabId = messageReader . ReadInt32 ( ) ;
762
763
bool isActive = messageReader . ReadBoolean ( ) ;
763
- if ( isPlayerObject )
764
+
765
+ float xPos = messageReader . ReadSingle ( ) ;
766
+ float yPos = messageReader . ReadSingle ( ) ;
767
+ float zPos = messageReader . ReadSingle ( ) ;
768
+
769
+ float xRot = messageReader . ReadSingle ( ) ;
770
+ float yRot = messageReader . ReadSingle ( ) ;
771
+ float zRot = messageReader . ReadSingle ( ) ;
772
+
773
+ if ( isPlayerObject )
764
774
{
765
775
SpawnManager . SpawnPlayerObject ( ownerId , networkId ) ;
766
776
}
767
777
else
768
778
{
769
- GameObject go = SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
779
+ GameObject go = SpawnManager . SpawnObject ( prefabId , networkId , ownerId ,
780
+ new Vector3 ( xPos , yPos , zPos ) , Quaternion . Euler ( xRot , yRot , zRot ) ) ;
781
+
770
782
go . SetActive ( isActive ) ;
771
783
}
772
784
}
@@ -798,14 +810,23 @@ private void HandleIncomingData(int clientId, byte[] data, int channelId)
798
810
int ownerId = messageReader . ReadInt32 ( ) ;
799
811
int prefabId = messageReader . ReadInt32 ( ) ;
800
812
813
+ float xPos = messageReader . ReadSingle ( ) ;
814
+ float yPos = messageReader . ReadSingle ( ) ;
815
+ float zPos = messageReader . ReadSingle ( ) ;
816
+
817
+ float xRot = messageReader . ReadSingle ( ) ;
818
+ float yRot = messageReader . ReadSingle ( ) ;
819
+ float zRot = messageReader . ReadSingle ( ) ;
820
+
801
821
if ( isPlayerObject )
802
822
{
803
823
connectedClients . Add ( ownerId , new NetworkedClient ( ) { ClientId = ownerId } ) ;
804
824
SpawnManager . SpawnPlayerObject ( ownerId , networkId ) ;
805
825
}
806
826
else
807
827
{
808
- SpawnManager . SpawnObject ( prefabId , networkId , ownerId ) ;
828
+ SpawnManager . SpawnObject ( prefabId , networkId , ownerId ,
829
+ new Vector3 ( xPos , yPos , zPos ) , Quaternion . Euler ( xRot , yRot , zRot ) ) ;
809
830
}
810
831
}
811
832
else
@@ -1504,6 +1525,14 @@ private void HandleApproval(int clientId, bool approved)
1504
1525
writer . Write ( pair . Value . OwnerClientId ) ;
1505
1526
writer . Write ( pair . Value . SpawnablePrefabIndex ) ;
1506
1527
writer . Write ( pair . Value . gameObject . activeInHierarchy ) ;
1528
+
1529
+ writer . Write ( pair . Value . transform . position . x ) ;
1530
+ writer . Write ( pair . Value . transform . position . y ) ;
1531
+ writer . Write ( pair . Value . transform . position . z ) ;
1532
+
1533
+ writer . Write ( pair . Value . transform . rotation . x ) ;
1534
+ writer . Write ( pair . Value . transform . rotation . y ) ;
1535
+ writer . Write ( pair . Value . transform . rotation . z ) ;
1507
1536
}
1508
1537
}
1509
1538
}
0 commit comments