/// <summary> /// 异步加载资源 /// </summary> /// <param name="path"></param> /// <param name="name"></param> /// <param name="callBack"></param> public void LoadAsync <T>(string path, System.Action <T> callBack) where T : Object { if (path.Substring(0, 4) == "Res/") { path = path.Substring(4, path.Length - 4); ResLoadTask <T> resTask = new ResLoadTask <T>(Resources.LoadAsync(path), callBack); m_TaskPool.Add(resTask); } #if AB var temp = Utility.Text.SplitPathName(path); // 同步加载AB包 //ABLoadTask<T> abTask = new ABLoadTask<T>(GetAssetBundle(temp[0]).LoadAssetAsync(temp[1]), callBack); //m_TaskPool.Add(abTask); // 异步加载AB包 GetAssetBundleAsync(temp[0], (ab) => { ABLoadTask <T> abTask = new ABLoadTask <T>(ab.LoadAssetAsync(temp[1]), callBack); m_TaskPool.Add(abTask); }); #else T obj = LoadWithADB <T>(path); callBack(obj); #endif }
public void Update() { ILoader loader = GetIdleResourcesLoader(); if (loader == null) { return; } ResLoadTask task = DequeueLoadTask(); loader.PrepareLoad(task.m_resType, task.m_name); loader.StartLoad(); }
public void AppendLoadTaskAsync(EResourcesType resType, string resName, Action <ResourceInfo> callBack) { ResLoadTask task = new ResLoadTask(resName, resType, ELoadSpeedType.Normal, callBack); m_laodTaskQueue.Enqueue(task); }