@@ -255,7 +255,7 @@ internal static NetworkedObject CreateLocalNetworkedObject(bool softCreate, ulon
255255 }
256256
257257 // Ran on both server and client
258- internal static void SpawnNetworkedObjectLocally ( NetworkedObject netObject , ulong networkId , bool sceneObject , bool playerObject , ulong ownerClientId , Stream dataStream , bool readPayload , int payloadLength , bool readNetworkedVar , bool destroyWithScene )
258+ internal static void SpawnNetworkedObjectLocally ( NetworkedObject netObject , ulong networkId , bool sceneObject , bool playerObject , ulong ? ownerClientId , Stream dataStream , bool readPayload , int payloadLength , bool readNetworkedVar , bool destroyWithScene )
259259 {
260260 if ( netObject == null )
261261 {
@@ -279,34 +279,37 @@ internal static void SpawnNetworkedObjectLocally(NetworkedObject netObject, ulon
279279
280280 netObject . DestroyWithScene = sceneObject || destroyWithScene ;
281281
282- netObject . OwnerClientId = ownerClientId ;
282+ netObject . _ownerClientId = ownerClientId ;
283283 netObject . IsPlayerObject = playerObject ;
284284
285285 SpawnedObjects . Add ( netObject . NetworkId , netObject ) ;
286286 SpawnedObjectsList . Add ( netObject ) ;
287287
288- if ( NetworkingManager . Singleton . IsServer )
288+ if ( ownerClientId != null )
289289 {
290- if ( playerObject )
290+ if ( NetworkingManager . Singleton . IsServer )
291291 {
292- NetworkingManager . Singleton . ConnectedClients [ ownerClientId ] . PlayerObject = netObject ;
293- }
294- else
295- {
296- NetworkingManager . Singleton . ConnectedClients [ ownerClientId ] . OwnedObjects . Add ( netObject ) ;
297- }
298-
299- for ( int i = 0 ; i < NetworkingManager . Singleton . ConnectedClientsList . Count ; i ++ )
300- {
301- if ( netObject . CheckObjectVisibility == null || netObject . CheckObjectVisibility ( NetworkingManager . Singleton . ConnectedClientsList [ i ] . ClientId ) )
292+ if ( playerObject )
293+ {
294+ NetworkingManager . Singleton . ConnectedClients [ ownerClientId . Value ] . PlayerObject = netObject ;
295+ }
296+ else
302297 {
303- netObject . observers . Add ( NetworkingManager . Singleton . ConnectedClientsList [ i ] . ClientId ) ;
298+ NetworkingManager . Singleton . ConnectedClients [ ownerClientId . Value ] . OwnedObjects . Add ( netObject ) ;
299+ }
300+
301+ for ( int i = 0 ; i < NetworkingManager . Singleton . ConnectedClientsList . Count ; i ++ )
302+ {
303+ if ( netObject . CheckObjectVisibility == null || netObject . CheckObjectVisibility ( NetworkingManager . Singleton . ConnectedClientsList [ i ] . ClientId ) )
304+ {
305+ netObject . observers . Add ( NetworkingManager . Singleton . ConnectedClientsList [ i ] . ClientId ) ;
306+ }
304307 }
305308 }
306- }
307- else if ( playerObject && ownerClientId == NetworkingManager . Singleton . LocalClientId )
308- {
309- NetworkingManager . Singleton . ConnectedClients [ ownerClientId ] . PlayerObject = netObject ;
309+ else if ( playerObject && ownerClientId . Value == NetworkingManager . Singleton . LocalClientId )
310+ {
311+ NetworkingManager . Singleton . ConnectedClients [ ownerClientId . Value ] . PlayerObject = netObject ;
312+ }
310313 }
311314
312315 if ( readPayload )
@@ -467,7 +470,7 @@ internal static void ServerSpawnSceneObjectsOnStartSweep()
467470 {
468471 if ( networkedObjects [ i ] . IsSceneObject == null )
469472 {
470- SpawnNetworkedObjectLocally ( networkedObjects [ i ] , GetNetworkObjectId ( ) , true , false , NetworkingManager . Singleton . ServerClientId , null , false , 0 , false , true ) ;
473+ SpawnNetworkedObjectLocally ( networkedObjects [ i ] , GetNetworkObjectId ( ) , true , false , null , null , false , 0 , false , true ) ;
471474 }
472475 }
473476 }
0 commit comments