コード例 #1
0
        private IEnumerator UnloadAssetWithLotsOfDependencyCo(IAssetAccessor assetAccessor)
        {
            yield return(new WaitForSeconds(3));

            Debug.Log($"Unload asset (with lots of dependency).");
            Asset.UnloadAsset(assetAccessor);
        }
コード例 #2
0
 private void OnLoadAssetFailure(IAssetAccessor assetAccessor, string errorMessage, object context)
 {
     Debug.LogWarningFormat(
         "[DemoAssetApp OnLoadAssetFailure] assetPath='{0}', errorMessage='{1}', context='{2}'",
         assetAccessor.AssetPath, errorMessage, context);
     Asset.UnloadAsset(assetAccessor);
 }
コード例 #3
0
    public void LoadScene(SceneData sceneData, Action onSceneLoaded)
    {
        if (m_IsLoadingScene)
        {
            throw new InvalidOperationException($"Scene [{m_SceneData.SceneName}] is being loaded while you're trying to load scene [{sceneData.SceneName}]");
        }

        if (string.IsNullOrEmpty(sceneData.SceneName))
        {
            throw new InvalidOperationException("Invalid scene name.");
        }

        if (m_SceneAssetAccessor != null)
        {
            GameEntry.Instance.Asset.UnloadAsset(m_SceneAssetAccessor);
            m_SceneAssetAccessor = null;
        }

        m_SceneData      = sceneData;
        m_OnSceneLoaded  = onSceneLoaded;
        m_IsLoadingScene = true;
        GameEntry.Instance.Asset.LoadSceneAsset(Path.Combine(SceneRootPath, m_SceneData.SceneName + SceneFileExt), new LoadAssetCallbackSet
        {
            OnSuccess = OnLoadSceneAssetSuccess,
        }, null);
    }
コード例 #4
0
        private void OnLoadAssetSuccess(IAssetAccessor assetAccessor, object context)
        {
            Debug.LogFormat("[DemoAssetApp OnLoadAssetSuccess] assetPath='{0}', assetObject='{1}', context='{2}'",
                            assetAccessor.AssetPath, assetAccessor.AssetObject, context);
            var go = Instantiate((GameObject)assetAccessor.AssetObject);

            StartCoroutine(UnloadFirstAssetCo(assetAccessor, go));
        }
コード例 #5
0
        public void UnloadAsset(IAssetAccessor assetAccessor)
        {
            var dummyAssetAccessor = (DummyAssetAccessor)assetAccessor;

            dummyAssetAccessor.AssetObject = null;
            dummyAssetAccessor.AssetPath   = null;
            dummyAssetAccessor.Status      = AssetAccessorStatus.None;
        }
コード例 #6
0
        /// <inheritdoc />
        public void UnloadAsset(IAssetAccessor assetAccessor)
        {
            if (m_UpdateChecker.Status != UpdateCheckerStatus.Success)
            {
                throw new InvalidOperationException("Update checking not successfully done.");
            }

            m_Loader.UnloadAsset((AssetAccessor)assetAccessor);
        }
コード例 #7
0
ファイル: AudioManager.cs プロジェクト: takaaptech/SMB_ECS
 private void OnLoadSoundEffectAssetSuccess(IAssetAccessor assetAccessor, object context)
 {
     Assert.IsNotNull(assetAccessor.AssetPath);
     m_AssetAccessors.Add(Path.GetFileNameWithoutExtension(assetAccessor.AssetPath), assetAccessor);
     if (--m_CountToLoad <= 0)
     {
         m_OnComplete?.Invoke();
     }
 }
コード例 #8
0
        private IEnumerator AfterLoadScene(IAssetAccessor sceneAssetAccessor, AsyncOperation loadSceneOp)
        {
            yield return(loadSceneOp);

            yield return(new WaitForSeconds(3));

            Asset.UnloadAsset(sceneAssetAccessor);
            LoadAssetWithLotsOfDependency();
        }
コード例 #9
0
        private IEnumerator OnLoadAtlasSuccessCo(IAssetAccessor assetAccessor, object context)
        {
            var prefab = (GameObject)assetAccessor.AssetObject;

            Instantiate(prefab);
            yield return(new WaitForSeconds(5));

            Asset.UnloadAsset(assetAccessor);
            StartCoroutine(LoadDepPrefabsCo());
        }
コード例 #10
0
        private IEnumerator UnloadFirstAssetCo(IAssetAccessor assetAccessor, GameObject go)
        {
            yield return(new WaitForSeconds(3));

            Destroy(go);
            Asset.UnloadAsset(assetAccessor);
            yield return(new WaitForSeconds(1));

            LoadAtlas();
        }
コード例 #11
0
    private void OnLoadUIAssetSuccess(IAssetAccessor assetAccessor, object context)
    {
        var originalContext = (OpenUIContext)context;

        m_BeingOpenedUIs.Remove(originalContext.UIPage);
        var go = Instantiate((GameObject)assetAccessor.AssetObject, RootTransform);

        m_OpenedUIs.Add(originalContext.UIPage, new OpenedUIData {
            AssetAccessor = assetAccessor, RootGO = go
        });
        var uiLogic = go.GetComponent <UILogic>();

        uiLogic.OnOpen(originalContext.Context);
    }
コード例 #12
0
        private IEnumerator OnLoadPrefabADependsOnBSuccessCo(IAssetAccessor assetAccessor, object context)
        {
            var go = Instantiate((GameObject)assetAccessor.AssetObject);

            yield return(new WaitForSeconds(2f));

            Destroy(go);
            Asset.UnloadAsset(assetAccessor);
            yield return(new WaitForSeconds(2f));

            Asset.LoadAsset(m_GetPipTextPath, new LoadAssetCallbackSet
            {
                OnSuccess = (_assetAccessor, _context) =>
                {
                    Asset.UnloadAsset(_assetAccessor);
                    LoadAnotherScene();
                },
                OnFailure  = OnLoadAssetFailure,
                OnProgress = OnLoadAssetProgress,
            }, null);
        }
コード例 #13
0
ファイル: AudioManager.cs プロジェクト: takaaptech/SMB_ECS
 private void OnLoadMusicAssetFailure(IAssetAccessor assetaccessor, string errormessage, object context)
 {
     throw new NotImplementedException();
 }
コード例 #14
0
 private void OnLoadAtlasSuccess(IAssetAccessor assetAccessor, object context)
 {
     StartCoroutine(OnLoadAtlasSuccessCo(assetAccessor, context));
 }
コード例 #15
0
 private void OnLoadAssetWithLotsOfDependencySuccess(IAssetAccessor assetAccessor, object context)
 {
     Debug.Log($"Loading asset (with lots of dependency) ends at {Time.time}.");
     StartCoroutine(UnloadAssetWithLotsOfDependencyCo(assetAccessor));
 }
コード例 #16
0
 private void OnLoadPrefabADependsOnBSuccess(IAssetAccessor assetAccessor, object context)
 {
     StartCoroutine(OnLoadPrefabADependsOnBSuccessCo(assetAccessor, context));
 }
コード例 #17
0
 private void OnLoadSceneAssetSuccess(IAssetAccessor assetAccessor, object context)
 {
     m_SceneAssetAccessor = assetAccessor;
     StartCoroutine(LoadUnitySceneCo());
 }
コード例 #18
0
 public void UnloadAsset(IAssetAccessor assetAccessor)
 {
     Module.UnloadAsset(assetAccessor);
 }
コード例 #19
0
 private void OnLoadAssetProgress(IAssetAccessor assetAccessor, float progress, object context)
 {
     Debug.Log($"[DemoAssetApp OnLoadAssetProgress] assetPath: {assetAccessor.AssetPath}, progress: {progress}");
 }