예제 #1
0
        AssetBundleAsset CreateAsset(Object rawasset, string assetName)
        {
            int uid = rawasset.GetInstanceID();

            AssetBundleAsset asset;
            WeakReference    wr;

            if (assetReferences.TryGetValue(uid, out wr))
            {
                asset = wr.Target as AssetBundleAsset;
                if (asset != null)
                {
                    //强行更新资源.
                    asset.SetAsset(rawasset);
                    return(asset);
                }
                else
                {
                    assetReferences.Remove(uid);    //此分支难于测试
                }
            }

            asset = new AssetBundleAsset(rawasset, assetName, this);
            assetReferences.Add(uid, new WeakReference(asset));

            return(asset);
        }
 public void SetAsset(AssetBundleAsset asset)
 {
     this.asset = asset;
 }