//数据重置 public void Reset() { m_onAsyncLoadFinished = null; m_onAsyncLoadObjectFinished = null; m_resourceObjectItem = null; m_parms = null; }
/// <summary> /// 异步加载资源 仅加载不需要实例化的资源 音频 图片等等 /// </summary> public void AsyncLoadResource(string resPath, OnAsyncLoadFinished onAsyncLoadFinished, LoadResPriority loadResPriority, object[] parms = null) { if (string.IsNullOrEmpty(resPath)) { return; } uint crc = MCrcHelper.GetCRC32(resPath); MResourceItem mResourceItem = GetCacheResourceItem(crc); if (mResourceItem != null && mResourceItem.m_object != null) { if (onAsyncLoadFinished != null) { onAsyncLoadFinished(resPath, mResourceItem.m_object, parms); } return; } //判断下对象是不是在加载中 AsyncLoadResParam asyncLoadResParam = null; if (!m_asyncLoadingAssetDic.TryGetValue(crc, out asyncLoadResParam) || asyncLoadResParam == null) { asyncLoadResParam = m_asyncLoadResParamPool.Spawn(true); asyncLoadResParam.m_crc = crc; asyncLoadResParam.m_resPath = resPath; asyncLoadResParam.m_loadResPriority = loadResPriority; //结果保存 m_asyncAssetLoadingList[(int)loadResPriority].Add(asyncLoadResParam); m_asyncLoadingAssetDic.Add(crc, asyncLoadResParam); } //添加回调 AsyncCallBack m_asyncCallBack = m_asyncCallBackPool.Spawn(true); m_asyncCallBack.m_onAsyncLoadFinished = onAsyncLoadFinished; m_asyncCallBack.m_parms = parms; asyncLoadResParam.m_asyncCallBacks.Add(m_asyncCallBack); }