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; }