@@ -64,10 +64,6 @@ void OnLoadComplete(ulong clientId, string sceneName, LoadSceneMode loadSceneMod
64
64
{
65
65
ServerLoaded ( ) ;
66
66
}
67
- else
68
- {
69
- ClientLoaded ( clientId , sceneName ) ;
70
- }
71
67
}
72
68
73
69
private void ServerLoaded ( )
@@ -82,37 +78,14 @@ private void ServerLoaded()
82
78
SetWinState ( WinState . Invalid ) ;
83
79
84
80
NetworkManager . Singleton . OnClientDisconnectCallback += OnClientDisconnect ;
85
-
86
- DoInitialSpawnIfPossible ( ) ;
81
+ NetworkManager . Singleton . SceneManager . OnLoadEventCompleted += OnLoadEventCompleted ;
82
+ NetworkManager . Singleton . SceneManager . OnSynchronizeComplete += OnSynchronizeComplete ;
87
83
88
84
SessionManager < SessionPlayerData > . Instance . OnSessionStarted ( ) ;
89
85
m_Subscription = m_LifeStateChangedEventMessageSubscriber . Subscribe ( OnLifeStateChangedEventMessage ) ;
90
86
}
91
87
}
92
88
93
- private void ClientLoaded ( ulong clientId , string sceneName )
94
- {
95
- var sceneIndex = SceneManager . GetSceneByName ( sceneName ) . buildIndex ;
96
- int serverScene = UnityEngine . SceneManagement . SceneManager . GetActiveScene ( ) . buildIndex ;
97
- if ( sceneIndex == serverScene )
98
- {
99
- Debug . Log ( $ "client={ clientId } now in scene { sceneIndex } , server_scene={ serverScene } , all players in server scene={ m_ServerNetPortal . AreAllClientsInServerScene ( ) } ") ;
100
-
101
- bool didSpawn = DoInitialSpawnIfPossible ( ) ;
102
-
103
- if ( ! didSpawn && InitialSpawnDone &&
104
- ! PlayerServerCharacter . GetPlayerServerCharacters ( ) . Find (
105
- player => player . OwnerClientId == clientId ) )
106
- {
107
- //somebody joined after the initial spawn. This is a Late Join scenario. This player may have issues
108
- //(either because multiple people are late-joining at once, or because some dynamic entities are
109
- //getting spawned while joining. But that's not something we can fully address by changes in
110
- //ServerBossRoomState.
111
- SpawnPlayer ( clientId , true ) ;
112
- }
113
- }
114
- }
115
-
116
89
protected override void OnDestroy ( )
117
90
{
118
91
m_Subscription ? . Dispose ( ) ;
@@ -167,41 +140,14 @@ IEnumerator WaitToCheckForGameOver()
167
140
CheckForGameOver ( ) ;
168
141
}
169
142
170
- public void OnClientSceneChanged ( SceneEvent sceneEvent )
171
- {
172
- if ( sceneEvent . SceneEventType != SceneEventType . LoadComplete ) return ;
173
-
174
- var clientId = sceneEvent . ClientId ;
175
- var sceneIndex = SceneManager . GetSceneByName ( sceneEvent . SceneName ) . buildIndex ;
176
- int serverScene = UnityEngine . SceneManagement . SceneManager . GetActiveScene ( ) . buildIndex ;
177
- if ( sceneIndex == serverScene )
178
- {
179
- Debug . Log ( $ "client={ clientId } now in scene { sceneIndex } , server_scene={ serverScene } , all players in server scene={ m_ServerNetPortal . AreAllClientsInServerScene ( ) } ") ;
180
-
181
- bool didSpawn = DoInitialSpawnIfPossible ( ) ;
182
-
183
- if ( ! didSpawn && InitialSpawnDone &&
184
- ! PlayerServerCharacter . GetPlayerServerCharacters ( ) . Find (
185
- player => player . OwnerClientId == clientId ) )
186
- {
187
- //somebody joined after the initial spawn. This is a Late Join scenario. This player may have issues
188
- //(either because multiple people are late-joining at once, or because some dynamic entities are
189
- //getting spawned while joining. But that's not something we can fully address by changes in
190
- //ServerBossRoomState.
191
- SpawnPlayer ( clientId , true ) ;
192
- }
193
- }
194
- }
195
-
196
143
public void OnServerUnloadComplete ( ulong clientId , string sceneName )
197
144
{
198
145
if ( clientId != NetworkManager . ServerClientId ) return ;
199
146
200
- if ( m_NetPortal != null )
201
- {
202
- NetworkManager . Singleton . OnClientDisconnectCallback -= OnClientDisconnect ;
203
- NetworkManager . Singleton . SceneManager . OnSceneEvent -= OnClientSceneChanged ;
204
- }
147
+ NetworkManager . Singleton . OnClientDisconnectCallback -= OnClientDisconnect ;
148
+ NetworkManager . Singleton . OnClientDisconnectCallback -= OnClientDisconnect ;
149
+ NetworkManager . Singleton . SceneManager . OnLoadEventCompleted -= OnLoadEventCompleted ;
150
+ NetworkManager . Singleton . SceneManager . OnSynchronizeComplete -= OnSynchronizeComplete ;
205
151
m_Subscription ? . Dispose ( ) ;
206
152
}
207
153
0 commit comments