Example #1
0
    /// <summary>
    /// 加载Resource资源
    /// </summary>
    /// <typeparam name="T">资源类型</typeparam>
    /// <param name="assetName">资源名称</param>
    /// <param name="listener">回调</param>
    /// <param name="isKeepInMemory">是否常驻内存</param>
    /// <param name="isAsync">是否异步</param>
    private void LoadForRes <T>(string assetName, ILoadListener listener, bool isKeepInMemory, bool isAsync)
    {
        if (!mResTxtDic.ContainsKey(assetName))
        {
            if (listener != null)
            {
                listener.LoadFailure(assetName);
            }
            Log.Error("这个资源不存在Resources里面 资源名称:" + assetName);
            return;
        }
        for (int i = 0; i < mLoadIn.Count; i++)
        {
            if (mLoadIn[i].AssetName == assetName)
            {
                Log.Error("正在加载这个资源 资源名称:" + assetName);
                return;
            }
        }
        for (int i = 0; i < mLoadWait.Count; i++)
        {
            if (mLoadWait.ToArray()[i].AssetName == assetName)
            {
                Log.Error("这个资源已经等待加载了 资源名称:" + assetName);
                return;
            }
        }
        ResReq req = new ResReq(assetName, listener, typeof(T), isKeepInMemory, isAsync);

        mLoadWait.Enqueue(req);
    }
Example #2
0
 /// <summary>
 /// Resource资源加载完成回调
 /// </summary>
 /// <param name="req"></param>
 private void LoadResFinish(ResReq req)
 {
     if (req.Asset == null)
     {
         if (req.LoadListener != null)
         {
             req.LoadListener.LoadFailure(req.AssetName);
         }
     }
     else
     {
         AssetPack asset = new AssetPack(req.AssetName, req.Asset, req.IsKeepInMemory);
         if (mAssetPackDic.ContainsKey(req.AssetName))
         {
             mAssetPackDic[req.AssetName] = asset;
         }
         else
         {
             mAssetPackDic.Add(req.AssetName, asset);
         }
         req.LoadListener.LoadFinish(asset.Asset);
         AddAssetToStackTop(asset.AssetName);
     }
 }