示例#1
0
 public void Reset()
 {
     m_DealFinish = null;
     m_Param1     = null;
     m_Param2     = null;
     m_Param3     = null;
 }
示例#2
0
    public void AsyncLoadResource(string path, OnLoadResFinish dealFinish, LoadResPriority priority,
                                  object param1 = null, object param2 = null, object param3 = null, uint crc = 0)
    {
        if (crc == 0)
        {
            crc = Crc32.GetCrc32(path);
        }

        ResourceItem item = GetCacheResourceItem(crc);

        if (item != null)
        {
            if (dealFinish != null)
            {
                dealFinish(path, item.m_Obj, param1, param2, param3);
            }

            return;
        }
        //判断是否在加载中
        AsyncLoadResInfo para = null;

        if (!m_LoadingAssetDic.TryGetValue(crc, out para) || para == null)
        {
            para            = m_AsyncLoadResParamPool.Spawn();
            para.m_Crc      = crc;
            para.m_Path     = path;
            para.m_Priority = priority;
            m_LoadingAssetDic.Add(crc, para);
            m_LoadingAssetList[(int)priority].Add(para);
        }

        //往回调列表里面加回调
        AsyncLoadResCallBackInfo callBack = m_AsyncCallBackPool.Spawn();

        callBack.m_DealFinish = dealFinish;
        callBack.m_Param1     = param1;
        callBack.m_Param2     = param2;
        callBack.m_Param3     = param3;
        para.m_CallBackList.Add(callBack);
    }