@@ -56,7 +56,8 @@ public static void SwitchScene(string sceneName)
56
56
CurrentSceneIndex = sceneNameToIndex [ sceneName ] ;
57
57
isSwitching = true ;
58
58
lastScene = SceneManager . GetActiveScene ( ) ;
59
- AsyncOperation sceneLoad = SceneManager . LoadSceneAsync ( sceneName , LoadSceneMode . Additive ) ;
59
+ nextScene = SceneManager . GetSceneByName ( sceneName ) ;
60
+ AsyncOperation sceneLoad = SceneManager . LoadSceneAsync ( nextScene . buildIndex , LoadSceneMode . Additive ) ;
60
61
sceneLoad . completed += OnSceneLoaded ;
61
62
62
63
using ( PooledBitStream stream = PooledBitStream . Get ( ) )
@@ -92,16 +93,16 @@ internal static void OnSceneSwitch(uint sceneIndex)
92
93
}
93
94
SpawnManager . DestroySceneObjects ( ) ;
94
95
lastScene = SceneManager . GetActiveScene ( ) ;
95
- AsyncOperation sceneLoad = SceneManager . LoadSceneAsync ( sceneIndexToString [ sceneIndex ] , LoadSceneMode . Additive ) ;
96
+ nextScene = SceneManager . GetSceneByName ( sceneIndexToString [ sceneIndex ] ) ;
97
+ AsyncOperation sceneLoad = SceneManager . LoadSceneAsync ( nextScene . buildIndex , LoadSceneMode . Additive ) ;
96
98
sceneLoad . completed += OnSceneLoaded ;
97
99
}
98
100
99
101
private static void OnSceneLoaded ( AsyncOperation operation )
100
102
{
101
103
SceneManager . SetActiveScene ( nextScene ) ;
104
+
102
105
List < NetworkedObject > objectsToKeep = SpawnManager . SpawnedObjectsList ;
103
- //The last loaded scene
104
- nextScene = SceneManager . GetSceneAt ( SceneManager . sceneCount - 1 ) ;
105
106
for ( int i = 0 ; i < objectsToKeep . Count ; i ++ )
106
107
{
107
108
SceneManager . MoveGameObjectToScene ( objectsToKeep [ i ] . gameObject , nextScene ) ;
0 commit comments