@@ -56,7 +56,8 @@ public static void SwitchScene(string sceneName)
5656 CurrentSceneIndex = sceneNameToIndex [ sceneName ] ;
5757 isSwitching = true ;
5858 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 ) ;
6061 sceneLoad . completed += OnSceneLoaded ;
6162
6263 using ( PooledBitStream stream = PooledBitStream . Get ( ) )
@@ -92,16 +93,16 @@ internal static void OnSceneSwitch(uint sceneIndex)
9293 }
9394 SpawnManager . DestroySceneObjects ( ) ;
9495 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 ) ;
9698 sceneLoad . completed += OnSceneLoaded ;
9799 }
98100
99101 private static void OnSceneLoaded ( AsyncOperation operation )
100102 {
101103 SceneManager . SetActiveScene ( nextScene ) ;
104+
102105 List < NetworkedObject > objectsToKeep = SpawnManager . SpawnedObjectsList ;
103- //The last loaded scene
104- nextScene = SceneManager . GetSceneAt ( SceneManager . sceneCount - 1 ) ;
105106 for ( int i = 0 ; i < objectsToKeep . Count ; i ++ )
106107 {
107108 SceneManager . MoveGameObjectToScene ( objectsToKeep [ i ] . gameObject , nextScene ) ;
0 commit comments