@@ -2595,42 +2595,26 @@ private void HandleSessionOwnerEvent(uint sceneEventId, ulong clientId)
25952595 case SceneEventType . SynchronizeComplete :
25962596 {
25972597 // At this point the client is considered fully "connected"
2598- if ( ( NetworkManager . DistributedAuthorityMode && NetworkManager . LocalClient . IsSessionOwner ) || ! NetworkManager . DistributedAuthorityMode )
2598+ // Make sure we have a NetworkClient for this synchronized client
2599+ if ( ! NetworkManager . ConnectedClients . ContainsKey ( clientId ) )
25992600 {
2600- // Notify the local server that a client has finished synchronizing
2601- OnSceneEvent ? . Invoke ( new SceneEvent ( )
2602- {
2603- SceneEventType = sceneEventData . SceneEventType ,
2604- SceneName = string . Empty ,
2605- ClientId = clientId
2606- } ) ;
2607-
2608- // Make sure we have a NetworkClient for this synchronized client
2609- if ( ! NetworkManager . ConnectedClients . ContainsKey ( clientId ) )
2610- {
2611- NetworkManager . ConnectionManager . AddClient ( clientId ) ;
2612- }
2613- // Mark this client as being connected
2614- NetworkManager . ConnectedClients [ clientId ] . IsConnected = true ;
2601+ NetworkManager . ConnectionManager . AddClient ( clientId ) ;
26152602 }
2616- else
2617- {
2618- // Notify the local server that a client has finished synchronizing
2619- OnSceneEvent ? . Invoke ( new SceneEvent ( )
2620- {
2621- SceneEventType = sceneEventData . SceneEventType ,
2622- SceneName = string . Empty ,
2623- ClientId = clientId
2624- } ) ;
2603+ // Mark this client as being connected
2604+ NetworkManager . ConnectedClients [ clientId ] . IsConnected = true ;
26252605
2626- // Make sure we have a NetworkClient for this synchronized client
2627- if ( ! NetworkManager . ConnectedClients . ContainsKey ( clientId ) )
2628- {
2629- NetworkManager . ConnectionManager . AddClient ( clientId ) ;
2630- }
2631- // Mark this client as being connected
2632- NetworkManager . ConnectedClients [ clientId ] . IsConnected = true ;
2606+ // Notify the local server that a client has finished synchronizing
2607+ OnSceneEvent ? . Invoke ( new SceneEvent ( )
2608+ {
2609+ SceneEventType = sceneEventData . SceneEventType ,
2610+ SceneName = string . Empty ,
2611+ ClientId = clientId
2612+ } ) ;
26332613
2614+ // For non-authority clients in a distributed authority session, we show hidden objects,
2615+ // we distribute NetworkObjects, and then we end the scene event.
2616+ if ( NetworkManager . DistributedAuthorityMode && ! NetworkManager . LocalClient . IsSessionOwner )
2617+ {
26342618 // Show any NetworkObjects that are:
26352619 // - Hidden from the session owner
26362620 // - Owned by this client
0 commit comments