protected IEnumerator InitializeLevelAsync(string sceneNamePath, bool isAdditive) { var levelName = System.IO.Path.GetFileNameWithoutExtension(sceneNamePath); var sceneAssetBundle = Settings.Map.GetAssetBundleName(sceneNamePath); // This is simply to get the elapsed time for this phase of AssetLoading. float startTime = Time.realtimeSinceStartup; // Load level from assetBundle. AssetBundleLoadOperation request = AssetBundleManager.LoadLevelAsync(sceneAssetBundle, levelName, isAdditive); if (request == null) { yield break; } yield return(StartCoroutine(request)); var loadedScene = UnityEngine.SceneManagement.SceneManager.GetSceneByName(levelName); UnityEngine.SceneManagement.SceneManager.SetActiveScene(loadedScene); // Calculate and display the elapsed time. float elapsedTime = Time.realtimeSinceStartup - startTime; Debug.Log("Finished loading scene " + levelName + " in " + elapsedTime + " seconds"); if (disableAfterLoad != null) { disableAfterLoad.SetActive(false); } GameObject.Destroy(gameObject); }
// Load level from the given assetBundle. static public AssetBundleLoadOperation LoadLevelAsync(string assetBundleName, string levelName, bool isAdditive) { Log(LogType.Info, "Loading " + levelName + " from " + assetBundleName + " bundle"); AssetBundleLoadOperation operation = null; assetBundleName = RemapVariantName(assetBundleName); if (assetBundleName == null) { return(null); } #if UNITY_EDITOR if (SimulateAssetBundleInEditor) { operation = new AssetBundleLoadLevelOperationSimulation(assetBundleName, levelName, isAdditive); } else #endif { LoadAssetBundle(assetBundleName); operation = new AssetBundleLoadLevelOperationFull(assetBundleName, levelName, isAdditive); m_InProgressOperations.Add(operation); } return(operation); }
IEnumerator InitializeLevelAsync(string levelName, bool isAdditive) { // This is simply to get the elapsed time for this phase of AssetLoading. float startTime = Time.realtimeSinceStartup; // Load level from assetBundle. AssetBundleLoadOperation request = AssetBundleManager.LoadLevelAsync(sceneAssetBundle, levelName, isAdditive); if (request == null) { yield break; } yield return(StartCoroutine(request)); // Calculate and display the elapsed time. float elapsedTime = Time.realtimeSinceStartup - startTime; Debug.Log("Finished loading scene " + levelName + " in " + elapsedTime + " seconds"); }