public bool IsReady(GameItemInfo gameItem) { Initialize(); ResourceGameItem item = gameItem as ResourceGameItem; if (item != null) { return(true); } AssetBundleGameItem assetBundleGameItem = gameItem as AssetBundleGameItem; if (assetBundleGameItem != null) { if (_assetBundles.ContainsKey(assetBundleGameItem.AssetBundle)) { return(_assetBundles[assetBundleGameItem.AssetBundle].LoadAsset(assetBundleGameItem.ItemName)); } if (!IsAssetBundleDownloaded(assetBundleGameItem.AssetBundle)) { return(false); } return(true); } return(true); }
public Object Resolve(GameItemInfo gameItem) { Initialize(); ResourceGameItem item = gameItem as ResourceGameItem; if (item != null) { return(Resources.Load(item.Address)); } AssetBundleGameItem assetBundleGameItem = gameItem as AssetBundleGameItem; if (assetBundleGameItem != null) { if (_assetBundles.ContainsKey(assetBundleGameItem.AssetBundle)) { return(_assetBundles[assetBundleGameItem.AssetBundle].LoadAsset(assetBundleGameItem.ItemName)); } if (!IsAssetBundleDownloaded(assetBundleGameItem.AssetBundle)) { throw new Exception(string.Format("Asset bundle {0} is not downloaded", assetBundleGameItem.AssetBundle)); } Uri bundleServerAddress = GetBundleServerAddress(assetBundleGameItem.AssetBundle); UnityEngine.AssetBundle assetBundle = UnityEngine.AssetBundle.LoadFromFile( InfoResolver.Resolve <FortInfo>() .ServerConnectionProvider.UserConnection.LoadFromCache(bundleServerAddress)); _assetBundles[assetBundleGameItem.AssetBundle] = assetBundle; return(assetBundle.LoadAsset(assetBundleGameItem.ItemName)); } return((Object)gameItem.GetType().GetProperty("GameItem").GetValue(gameItem, new object[0])); }