/// <summary> /// 用于ObjectManager异步加载接口 /// </summary> public void AsyncLoadResObj(string path, ResourceObject resObj, OnAsyncResFinshCallBack resLoadCallBack) { ResourceItem item = GetCacheResourceItem(resObj.m_Crc); if (item != null) { resObj.m_ResItem = item; resLoadCallBack?.Invoke(path, resObj, resObj.m_Param1, resObj.m_Param2, resObj.m_Param3); resLoadCallBack = null; return; } //判断当前要加载的资源是否已存在加载列表中,不存在,则加入加载列表 AsyncLoadResParam param = null; if (!m_LoadingAssetDict.TryGetValue(resObj.m_Crc, out param) || param == null) { param = m_AsyncLoadResPool.Spawn(); param.m_Crc = resObj.m_Crc; param.m_Path = path; param.m_Priority = resObj.m_LoadPriority; m_LoadingAssetDict.Add(resObj.m_Crc, param); m_LoadAsyncResList[(int)resObj.m_LoadPriority].Add(param); } //回调列表里添加回调 AsyncCallBack asyncCallBack = m_AsyncCallBackPool.Spawn(); asyncCallBack.resObj = resObj; asyncCallBack.resFinshCallBack = resLoadCallBack; param.callBackList.Add(asyncCallBack); }
public void Reset() { finishCallBack = null; resFinshCallBack = null; resObj = null; param1 = null; param2 = null; param3 = null; }