public static IEnumerator LoadSceneNonAsync(SceneLoadingInfo sceneInfo) { Scene scene = sceneInfo._scene.GetScene(); if (!scene.IsValid() || !scene.isLoaded) { try { SceneManager.LoadScene(sceneInfo._scene.GetSceneName(), LoadSceneMode.Additive); } catch { yield break; } } if (!scene.IsValid()) { scene = sceneInfo._scene.GetScene(); } //Still have to wait until scene is loaded grr.. while (!scene.isLoaded) { yield return(null); } LoadAdditonalAssets(sceneInfo); yield break; }
public static IEnumerator LoadScene(SceneLoadingInfo sceneInfo) { if (!sceneInfo._scene.IsSceneLoaded()) { AsyncOperation asyncOp; try { asyncOp = SceneManager.LoadSceneAsync(sceneInfo._scene.GetSceneName(), LoadSceneMode.Additive); } catch { yield break; } while (!asyncOp.isDone) { yield return(null); } //Still have to wait until scene is loaded grr.. while (!sceneInfo._scene.IsSceneLoaded()) { yield return(null); } } LoadAdditonalAssets(sceneInfo); yield break; }
public void StartSceneLoading(SceneLoadingInfo info) { if (info.NextScene != GameScene.Loading) { loadingInfo = info; SceneManager.LoadScene(GameScene.Loading.ToString(), LoadSceneMode.Single); } }
private static void LoadAdditonalAssets(SceneLoadingInfo sceneInfo) { Scene scene = sceneInfo._scene.GetScene(); if (sceneInfo._additionalLoadingObjects != null) { foreach (GameObjectLoader.Ref loader in sceneInfo._additionalLoadingObjects) { GameObjectLoader.Load(scene, loader); } } }