コード例 #1
0
 //表示已经加载过bundle
 public Object GetSingleResource(string bundleName, string resName)
 {
     if (loadObj.ContainsKey(bundleName))
     {
         AssetResObj   tmpRes = loadObj[bundleName];
         List <Object> tmpObj = tmpRes.GetResObj(resName);
         if (tmpObj != null)
         {
             return(tmpObj[0]);
         }
     }
     if (loadHelper.ContainsKey(bundleName))
     {
         IABRelationManager loader      = loadHelper[bundleName];
         Object             tmpObj      = loader.GetSingleResource(resName);
         AssetObj           tmpAssetObj = new AssetObj(tmpObj);
         //缓存里面是否已经有了这个包
         if (loadObj.ContainsKey(bundleName))
         {
             AssetResObj tmpRes = loadObj[bundleName];
             tmpRes.AddResObj(resName, tmpAssetObj);
         }
         else
         {
             //没有加载过这个包
             AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj);
             loadObj.Add(bundleName, tmpRes);
         }
         return(tmpObj);
     }
     else
     {
         return(null);
     }
 }
コード例 #2
0
    void LoadObjectFromBundle(string bundleName, string resName, LoadObjectCallBack callback)
    {
        if (loadedHelper.ContainsKey(bundleName))
        {
            IABRelationManager relation = loadedHelper[bundleName];
            Object             tempObj  = relation.GetSingleResource(resName);

            //缓存 tempObj
            AssetObj assetObj = new AssetObj(tempObj);

            if (!loadObjs.ContainsKey(bundleName))
            {
                AssetResObj tmpRes = new AssetResObj(resName, assetObj);
                loadObjs.Add(bundleName, tmpRes);
            }
            else
            {
                AssetResObj resObj = loadObjs[bundleName];
                resObj.AddResObj(resName, assetObj);
            }

            if (null != callback)
            {
                callback(tempObj);
            }
        }
        else
        {
            if (null != callback)
            {
                callback(null);
            }
        }
    }
コード例 #3
0
    public UnityEngine.Object GetSingleResources(string bundleName, string resName)
    {
        //表示是否已经缓存了
        if (loadObj.ContainsKey(bundleName))
        {
            AssetResObj   tmpRes = loadObj[bundleName];
            List <Object> tmpObj = tmpRes.GetResObj(resName);
            if (tmpObj != null)
            {
                return(tmpObj[0]);
            }
        }

        //表示已经加载过bundle
        if (loadHelper.ContainsKey(bundleName))
        {
            IABRelationManager loader = loadHelper[bundleName];
            Object             tmpObj = loader.GetSingleResource(resName);

            //放入缓存
            AssetObj tmpAssetObj = new AssetObj(tmpObj);
            if (loadObj.ContainsKey(bundleName))
            {
                loadObj[bundleName].AddResObj(resName, tmpAssetObj);
            }
            else
            {
                AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj);
                loadObj.Add(bundleName, tmpRes);
            }

            return(tmpObj);
        }
        return(null);
    }
コード例 #4
0
 public UnityEngine.Object GetSingleResource(string bundlePath, string resName)
 {
     //表示是否缓存了该物体
     if (mAssetObjsDict.ContainsKey(bundlePath))
     {
         AssetBundleObjs           abObjs = mAssetObjsDict[bundlePath];
         List <UnityEngine.Object> objs   = abObjs.GetResObj(resName);
         if (objs != null)
         {
             return(objs[0]);
         }
     }
     //表示已经加载过bundle
     if (mABRelationDict.ContainsKey(bundlePath))
     {
         IABRelationManager iABRelation = mABRelationDict[bundlePath];
         UnityEngine.Object obj         = iABRelation.GetSingleResource(resName);
         AssetObj           assetObj    = new AssetObj(obj);
         if (mAssetObjsDict.ContainsKey(bundlePath))
         {
             AssetBundleObjs assetBundleObjs = mAssetObjsDict[bundlePath];
             mAssetObjsDict.Add(bundlePath, assetBundleObjs);
         }
         else
         {
             AssetBundleObjs assetBundleObjs = new AssetBundleObjs(resName, assetObj);
             mAssetObjsDict.Add(bundlePath, assetBundleObjs);
         }
         return(obj);
     }
     return(null);
 }
コード例 #5
0
    /// <summary>
    /// 加载的单个资源
    /// </summary>
    /// <param name="bundleName">包名</param>
    /// <param name="resName">资源名</param>
    /// <returns></returns>
    public Object GetSingleResources(string bundleName, string resName)
    {
        // 是否已经缓存了这个包
        if (loadObjs.ContainsKey(bundleName))
        {
            // 缓存包中有指定资源,直接返回
            AssetResObj   tmpRes  = loadObjs[bundleName];
            List <Object> tmpObjs = tmpRes.GetResObj(resName);

            if (tmpObjs != null)
            {
                return(tmpObjs[0]);
            }
        }

        // 是否已经加载过bundle
        if (loadHelper.ContainsKey(bundleName))
        {
            // 从包中加载出obj
            IABRelationManager loader      = loadHelper[bundleName];
            Object             tmpObj      = loader.GetSingleResource(resName);
            AssetObj           tmpAssetObj = new AssetObj(tmpObj);

            // 是否已经缓存了这个包
            if (loadObjs.ContainsKey(bundleName))
            {
                // 添加缓存资源
                AssetResObj tmpRes = loadObjs[bundleName];
                tmpRes.AddResObj(resName, tmpAssetObj);
            }
            else
            {
                // 添加缓存包和资源
                AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj);
                loadObjs.Add(bundleName, tmpRes);
            }

            return(tmpObj);
        }
        else
        {
            return(null);
        }
    }