Example #1
0
        private void UpdateStatus(AsyncSceneGroup asyncSceneGroup, int i)
        {
            Assert.IsNotNull(asyncSceneGroup);
            AsyncSceneGroup.AsyncScene asyncScene = asyncSceneGroup.AsyncScenes[i];

            // LoadAndActivationMode.Separate cases
            if (asyncScene.Status == LoadStatus.Loading && asyncScene.AsyncOperation.progress >= 0.9f)
            {
                asyncScene.Status = LoadStatus.Loaded;
            }
            if (asyncScene.Status == LoadStatus.Activating && asyncScene.AsyncOperation.isDone)
            {
                asyncScene.Status = LoadStatus.Activated;
            }

            // LoadAndActivationMode.Joint cases
            if (asyncScene.Status == LoadStatus.LoadingAndActivating && asyncScene.AsyncOperation.isDone)
            {
                asyncScene.Status = LoadStatus.Activated;
            }

            if (asyncScene.Status == LoadStatus.Unloading && asyncScene.AsyncOperation.isDone)
            {
                asyncScene.Status = LoadStatus.Unloaded;
            }
        }
Example #2
0
        private void ActivateSceneAsync(AsyncSceneGroup asyncSceneGroup, int i)
        {
            Assert.IsNotNull(asyncSceneGroup);
            Assert.AreEqual(LoadAndActivationMode.Separate, loadAndActivationMode);

            AsyncSceneGroup.AsyncScene asyncScene = asyncSceneGroup.AsyncScenes[i];
            Assert.AreEqual(LoadStatus.Loaded, asyncScene.Status);

            asyncScene.AsyncOperation.allowSceneActivation = true;
            asyncScene.Status = LoadStatus.Activating;
        }
Example #3
0
        private void UnloadSceneAsync(AsyncSceneGroup asyncSceneGroup, int i)
        {
            Assert.IsNotNull(asyncSceneGroup);

            AsyncSceneGroup.AsyncScene asyncScene = asyncSceneGroup.AsyncScenes[i];
            Assert.AreEqual(LoadStatus.Activated, asyncScene.Status);

            AsyncOperation op = SceneManager.UnloadSceneAsync(asyncScene.Scene);

            asyncScene.AsyncOperation = op;
            asyncScene.Status         = LoadStatus.Unloading;
        }
Example #4
0
        private void LoadSceneAsync(AsyncSceneGroup asyncSceneGroup, int i)
        {
            Assert.IsNotNull(asyncSceneGroup);
            AsyncSceneGroup.AsyncScene asyncScene = asyncSceneGroup.AsyncScenes[i];
            Assert.AreEqual(LoadStatus.NotLoaded, asyncScene.Status);
            AsyncOperation op = SceneManager.LoadSceneAsync(asyncSceneGroup.SceneGroup.Scenes[i].SceneName, UnityEngine.SceneManagement.LoadSceneMode.Additive);

            if (loadAndActivationMode == LoadAndActivationMode.Separate)
            {
                op.allowSceneActivation = false;
            }

            asyncScene.AsyncOperation = op;

            asyncScene.Status = ((loadAndActivationMode == LoadAndActivationMode.Separate) ? LoadStatus.Loading : LoadStatus.LoadingAndActivating);
            asyncScene.Scene  = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);
        }
Example #5
0
 private bool IsAsyncOperationInProgress(AsyncSceneGroup asyncSceneGroup, int i)
 {
     Assert.IsNotNull(asyncSceneGroup);
     AsyncSceneGroup.AsyncScene asyncScene = asyncSceneGroup.AsyncScenes[i];
     return(IsAsyncOperationInProgress(asyncScene.Status));
 }