コード例 #1
0
 public override void LoadScene()
 {
     SyncResourceManager.LoadSceneExternal(((MapConfig)ETModel.Game.Scene.GetComponent <ConfigComponent>().Get(typeof(MapConfig), mSceneId)).ResourcesID.ToString(), (object T1, object T2) =>
     {
         this.InternalLoadSceneCompleted();
     });
 }
コード例 #2
0
ファイル: LoginScene.cs プロジェクト: zcxxv1213/ArpgLearn
 public override void LoadScene()
 {
     SyncResourceManager.UnityLoadScene("Scene", (object T1, object T2) =>
     {
         this.InternalLoadSceneCompleted();
     });
 }
コード例 #3
0
    void Update()
    {
        mResourceManager.Update();
        mGameTimerManager.Execute();

        AsyncResourceManager.OnUpdate();
        SyncResourceManager.OnUpdate();
    }
コード例 #4
0
    public async void SetExternal(string path, string file, CallBackDelegate <object, object> mCall, GetDependBundlesFuncDelegate getExternalDependcesFunc)
    {
        string assetName = path + file;

        string[] dependencies = getExternalDependcesFunc(assetName);
        if (this.mAssetsLoaderAsyncDic.ContainsKey("external/" + assetName))
        {
            Debug.Log("await");
            await new WaitUntil(() => mAssetsLoaderAsyncDic.ContainsKey("external/" + assetName) == false && this.resourceCache.ContainsKey("external/" + assetName));
        }
        if (this.resourceCache.ContainsKey("external/" + assetName))
        {
            //  Debug.Log(("external/" + assetName));
            GameObject obj = GameObject.Instantiate((GameObject)this.resourceCache["external/" + assetName]);
            this.bundles["external/" + assetName].AddRefObj(obj);
            // Debug.Log("AddRef" + "external/" + assetName + "Num" + this.bundles["external/" + assetName].RefCount);
            foreach (var v in dependencies)
            {
                if (v != assetName)
                {
                    if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + v))
                    {
                        this.bundles["external/" + v].AddRefObj(obj);
                        //   Debug.Log("AddRef" + "external/" + v + "Num" + this.bundles["external/" + v].RefCount);
                    }
                }
            }
            mCall(obj, file);
            // mLua.Call(obj, file);
        }
        else
        {
            AssetsLoaderAsync assetsLoaderAsync = new AssetsLoaderAsync();
            assetsLoaderAsync.SetBundle(this.bundles["external/" + assetName].AssetBundle, "external/" + assetName);
            mAssetsLoaderAsync.Add(assetsLoaderAsync);
            mAssetsLoaderAsyncDic["external/" + assetName] = assetsLoaderAsync;
            GameObject temp = (GameObject)await assetsLoaderAsync.LoadAssetAsync(file);

            GameObject obj = GameObject.Instantiate(temp);
            this.bundles["external/" + assetName].AddRefObj(obj);
            //   Debug.Log("AddRef" + "external/" + assetName + "Num" + this.bundles["external/" + assetName].RefCount);
            foreach (var v in dependencies)
            {
                if (v != assetName)
                {
                    if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + v))
                    {
                        this.bundles["external/" + v].AddRefObj(obj);
                        //    Debug.Log("AddRef" + "external/" + v + "Num" + this.bundles["external/" + v].RefCount);
                    }
                }
            }
            this.bundles["external/" + assetName].AssetBundle.Unload(false);
            this.resourceCache["external/" + assetName] = temp;
            mCall(obj, file);
            //mLua.Call(obj,file);
        }
    }
コード例 #5
0
ファイル: MemoryManager.cs プロジェクト: zcxxv1213/ArpgLearn
 public void EnterBattle()
 {
     GameTimerManager.Instance.ClearOnChangeScene();
     UIManager.Instance.DisposeAllLayers(false);
     //TODO PoolManagerDispose;
     AsyncResourceManager.UnloadBundles();
     SyncResourceManager.UnloadBundles();
     Resources.UnloadUnusedAssets();
 }
コード例 #6
0
ファイル: MemoryManager.cs プロジェクト: zcxxv1213/ArpgLearn
 public void ChangeScene(bool reLogin)
 {
     GameTimerManager.Instance.ClearOnChangeScene();
     UIManager.Instance.DisposeAllLayers(reLogin);
     //TODO PoolManagerDispose;
     AsyncResourceManager.UnloadBundles();
     SyncResourceManager.UnloadBundles();
     Resources.UnloadUnusedAssets();
 }
コード例 #7
0
    async Task LoadInit()
    {
        await AsyncResourceManager.Init();

        await SyncResourceManager.Init(new CallBackDelegate(() => {
            UIManager.Instance.Init();
        }
                                                            ));

        SceneManager.Instance.EnterSceneById(0);
    }
コード例 #8
0
 public void OnLoginEnterMainScenePreload(Action callBack)
 {
     UIManager.Instance.PreloadUI(ViewEnum.MainInterfaceView);
     SyncResourceManager.SetLoadAllFinishCallBack((object T1, object T2) =>
     {
         callBack();
         EventDispatcher.Instance.Dispatch <int, ToggleUIType, object>(EventConstant.TOGGLE_UI_WITH_PARAM, ViewEnum.LoginView, ToggleUIType.toggleFalse,
                                                                       new object[] { //ArenaModel.Instance.mSelfInfo, ArenaModel.Instance.mEnemyInfo, ViewEnum.LoginView
         });
     }
                                                  );
 }
コード例 #9
0
    public async void InternalLoadExternalAssetAsync(string path, string file, CallBackDelegate <object, object> callBack, DelegateLoadExternalMehod method, GetPathFuncDelegate getExternalPathFunc, GetDependBundlesFuncDelegate getExternalDependcesFunc)
    {
        string assetBundleName = path + file;
        string assetBundlePath = getExternalPathFunc(assetBundleName);

        string[] dependencies = getExternalDependcesFunc(assetBundleName);
        if (SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + assetBundleName))
        {
            //   Debug.Log(assetBundleName);
            SyncResourceManager.LoadObjectExternal(path, file, callBack);
            return;
        }

        if (taskList.Contains("external/" + assetBundleName))
        {
            await new WaitUntil(() => !this.taskList.Contains("external/" + assetBundleName));
        }
        taskList.Add("external/" + assetBundleName);
        if (!this.bundles.ContainsKey("external/" + assetBundleName) && !this.resourceCache.ContainsKey("external/" + assetBundleName))
        {
            foreach (string dependency in dependencies)
            {
                if (string.IsNullOrEmpty(dependency))
                {
                    continue;
                }
                if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + dependency))
                {
                    if (!TestTaskList.Contains("external/" + dependency) && !this.bundles.ContainsKey("external/" + dependency))
                    {
                        await this.MyLoadOneBundleAsync("external/" + dependency, path);
                    }
                    else if (TestTaskList.Contains("external/" + dependency))
                    {
                        await new WaitUntil(() => this.bundles.ContainsKey("external/" + dependency));
                    }
                }
            }
        }
        foreach (string dependency in dependencies)
        {
            if (string.IsNullOrEmpty(dependency))
            {
                continue;
            }
            if (!SyncResourceManager.CheckSyncAssetManagerLoaded("external/" + dependency))
            {
                await new WaitUntil(() => this.bundles.ContainsKey("external/" + dependency));
            }
        }
        method(path, file, callBack, getExternalDependcesFunc);
        taskList.Remove("external/" + assetBundleName);
    }
コード例 #10
0
 //TODO UseSyncLoaderManagerLoad
 public void LoadView(string path, string viewName, Action <GameObject> callBack)
 {
     if (ifLoadBundle)
     {
         SyncResourceManager.LoadUI(path, viewName, (T1, T2) =>
         {
             callBack((GameObject)T1);
         });
     }
     else
     {
         ResourceManager.LoadPrefab(path, viewName, (T1, T2) =>
         {
             callBack((GameObject)T1);
         });
     }
 }