示例#1
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);
    }
示例#2
0
    public async void InternalLoadAssetAsync(string path, string file, CallBackDelegate <object, object> callBack, DelegateLoadBundleMehod method, GetPathFuncDelegate getExternalPathFunc, GetDependBundlesFuncDelegate getExternalDependcesFunc)
    {
        string assetBundleName = path + file;
        string assetBundlePath = getExternalPathFunc(assetBundleName);

        string[] dependencies = getExternalDependcesFunc(assetBundleName);
        if (taskList.Contains(assetBundleName))
        {
            await new WaitUntil(() => !this.taskList.Contains(assetBundleName));
        }
        taskList.Add(assetBundleName);
        if (!this.bundles.ContainsKey(assetBundleName))
        {
            foreach (string dependency in dependencies)
            {
                if (string.IsNullOrEmpty(dependency))
                {
                    continue;
                }
                if (!this.bundles.ContainsKey(dependency) && !TestTaskList.Contains(dependency))
                {
                    await this.MyLoadOneBundleAsync(dependency, path);
                }
                else if (TestTaskList.Contains(dependency))
                {
                    await new WaitUntil(() => this.bundles.ContainsKey(assetBundleName) == true);
                }
            }
        }
        foreach (string dependency in dependencies)
        {
            await new WaitUntil(() => this.bundles.ContainsKey(dependency) == true);
        }
        method(path, file, callBack);
        taskList.Remove(assetBundleName);
    }
示例#3
0
 public void LoadTextTureAsync(string path, string file, CallBackDelegate <object, object> callBack, GetPathFuncDelegate getPathFunc, GetDependBundlesFuncDelegate getDependcesFunc)
 {
     this.InternalLoadAssetAsync(path, file, callBack, new DelegateLoadBundleMehod(this.SetTexture), getPathFunc, getDependcesFunc);
 }