public Object LoadResource(string objectName, System.Action <Object> afterLoadAct = null) { string bundleName = ResourcesLoaderHelper.GetResourcesBundleNameByObjectName(objectName); ABResInfo assetInfo = LoadFromFileOrCache(bundleName); AssetBundle assetBundle = assetInfo.assetbundle; Object obj = null; if (assetBundle != null) { foreach (string depBundleName in assetInfo.dependenciesNames) { LoadFromFileOrCache(depBundleName); } obj = assetBundle.LoadAsset(objectName); } else { Debug.logger.LogError("加载Bundle", "Bundle为空"); } if (afterLoadAct != null) { afterLoadAct(obj); } if (obj == null) { Debug.logger.LogError("加载错误", "加载失败!"); } return(obj); }
private ABResInfo LoadFromFileOrCache(string bundleName) { if (assetInfoList.ContainsKey(bundleName)) { return(assetInfoList[bundleName]); } else { ABResInfo newInfo = new ABResInfo(bundleName); assetInfoList.Add(bundleName, newInfo); UnloadBundles(); return(newInfo); } }