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);
        }
Example #2
0
        // 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);
        }
Example #3
0
        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");
        }