public AsyncOperation GetResourceByPathAsync <T>(string path, Action <AsyncResource> callBack, System.Object param) where T : UnityEngine.Object { if (useStreamAsset) { return(null); } else { ResourceRequest resReq = Resources.LoadAsync <T>(path); AsyncResource ar = new AsyncResource(resReq, param); SingleAsyncRes singleRes = new SingleAsyncRes(callBack, ar); m_asyncSingleLoadingRes.Add(singleRes); return(resReq); } }
public AsyncOperation GetResourceByPathAsync(string path, Action <AsyncResource> callBack = null, System.Object param = null) { if (useStreamAsset) { return(null); } else { ResourceRequest resReq = Resources.LoadAsync(path); AsyncResource ar = new AsyncResource(resReq, param); SingleAsyncRes groupRes = new SingleAsyncRes(callBack, ar); m_asyncSingleLoadingRes.Add(groupRes); return(resReq); } }
public void Update() { //List<GroupAsyncRes> toDelete = new List<GroupAsyncRes>(); for (int i = 0; i < m_asyncGroupLoadingRes.Count; ++i) { bool bDone = true; foreach (string key in m_asyncGroupLoadingRes[i].m_res.Keys) { if (!m_asyncGroupLoadingRes[i].m_res[key].asyncOperation.isDone) { bDone = false; break; } } if (bDone) { if (m_asyncGroupLoadingRes[i].m_callBack != null) { m_asyncGroupLoadingRes[i].m_callBack(m_asyncGroupLoadingRes[i].m_res); } //toDelete.Add(m_asyncGroupLoadingRes[i]); m_asyncGroupLoadingRes.RemoveAt(i); i--; } } for (int i = 0; i < m_asyncSingleLoadingRes.Count; i++) { SingleAsyncRes sr = m_asyncSingleLoadingRes[i]; if (sr.m_res.asyncOperation.isDone) { if (sr.m_callBack != null) { sr.m_callBack(sr.m_res); } m_asyncSingleLoadingRes.RemoveAt(i); i--; } } //foreach (var item in toDelete) //{ // m_asyncGroupLoadingRes.Remove(item); //} }