/// <summary> /// 添加一个依赖,这个仅在Editor下调用 /// </summary> /// <param name="name"></param> /// <param name="dependencies"></param> public void AddItem(string name, string hash, List <string> dependencies, ManifestItem.AssetTypeEnum @enum, string packageName = "") { ManifestItem item = null; if (this.Manifest_NameKey.TryGetValue(name, out item)) { if (item.Hash != hash) { Debug.LogError("有重名:" + name + ",如无显式BResource.Load加载则无视,隐式会自动根据hash算依赖!"); name = name + "_r"; item = new ManifestItem(name, hash, packageName, @enum, dependencies); this.Manifest_NameKey[name] = item; this.Manifest_HashKey[hash] = item; } else if (dependencies.Count >= item.Depend.Count) { item = new ManifestItem(name, hash, packageName, @enum, dependencies); this.Manifest_NameKey[name] = item; this.Manifest_HashKey[hash] = item; } } else { item = new ManifestItem(name, hash, packageName, @enum, dependencies); this.Manifest_NameKey[name] = item; this.Manifest_HashKey[hash] = item; } }
/// <summary> /// 获取单个menifestItem /// </summary> /// <param name="manifestName"></param> /// <returns></returns> public ManifestItem GetManifestItem(string manifestName) { ManifestItem item = new ManifestItem(); this.Manifest.TryGetValue(manifestName, out item); return(item); }
/// <summary> /// 获取单个menifestItem /// </summary> /// <param name="manifestName"></param> /// <returns></returns> public ManifestItem GetManifestItem(string manifestName) { if (!string.IsNullOrEmpty(manifestName)) { ManifestItem item = new ManifestItem(); this.Manifest.TryGetValue(manifestName, out item); return(item); } return(null); }
/// <summary> /// 获取单个menifestItem /// </summary> /// <param name="manifestName"></param> /// <returns></returns> public ManifestItem GetManifestItemByHash(string hashName) { if (!string.IsNullOrEmpty(hashName)) { ManifestItem item = null; this.Manifest_HashKey.TryGetValue(hashName, out item); return(item); } return(null); }
/// <summary> /// 获取单个menifestItem /// </summary> /// <param name="manifestName"></param> /// <returns></returns> public ManifestItem GetManifestItemByName(string manifestName) { if (!string.IsNullOrEmpty(manifestName)) { ManifestItem item = null; this.Manifest_NameKey.TryGetValue(manifestName, out item); return(item); } return(null); }
/// <summary> /// 添加一个依赖 /// </summary> /// <param name="name"></param> /// <param name="dependencies"></param> public void AddDepend(string name, string UIID, List <string> dependencies) { var item = new ManifestItem() { Name = name, UIID = UIID, Dependencies = dependencies }; this.Manifest[name] = item; }
/// <summary> /// 获取单个依赖 /// </summary> /// <param name="menifestName"></param> /// <returns></returns> public string[] GetDirectDependencies(string manifestName) { ManifestItem item = null; if (this.manifestMap.TryGetValue(manifestName, out item)) { return(item.Dependencies.ToArray()); } return(new string[0]); }
/// <summary> /// 加载资源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="abName"></param> /// <param name="objName"></param> /// <returns></returns> private T LoadFormAssetBundleByName <T>(string assetName) where T : UnityEngine.Object { ManifestItem item = this.config.Manifest.GetManifestItemByName(assetName); if (item != null) { return(LoadFormAssetBundle(item, typeof(T)) as T); } Debug.LogError("不存在:" + assetName); return(null); }
/// <summary> /// 获取单个依赖 /// </summary> /// <param name="menifestName"></param> /// <returns></returns> public string[] GetDirectDependenciesByName(string name) { ManifestItem item = null; if (this.Manifest_NameKey.TryGetValue(name, out item)) { var list = new List <string>(item.Depend); list.Add(item.Hash); return(list.ToArray()); } BDebug.LogError("【config】不存在资源:" + name); return(null); }
public LoaderTaskGroup(AssetBundleMgrV2 loder, string mainAssetName, ManifestItem manifestItem, List <LoaderTaskData> taskList, OnTaskCompleteCallbackDelegate onAllTaskCompleteCallbackDelegate) { this.loder = loder; this.taskList = taskList; //主资源 this.MainAssetName = mainAssetName; this.manifestItem = manifestItem; this.totalTaskNum = taskList.Count; this.OnAllTaskCompleteCallback += onAllTaskCompleteCallbackDelegate; }
/// <summary> /// 获取单个依赖 /// </summary> /// <param name="menifestName"></param> /// <returns></returns> public string[] GetDirectDependencies(string manifestName) { ManifestItem item = null; if (this.Manifest.TryGetValue(manifestName, out item)) { if (item == null) { BDebug.LogError("资源为null:" + manifestName); } return(item.Dependencies.ToArray()); } return(new string[0]); }
public void AddItem(ManifestItem item) { if (this.Manifest_NameKey.ContainsKey(item.Name)) { //prefab 嵌套的情况, 2018新系统 //被依赖项 其实也有依赖, if (item.Depend.Count >= this.Manifest_NameKey[item.Name].Depend.Count) { this.Manifest_NameKey[item.Name] = item; this.Manifest_HashKey[item.Hash] = item; } } else { this.Manifest_NameKey[item.Name] = item; this.Manifest_HashKey[item.Hash] = item; } }
/// <summary> /// 获取单个依赖 /// </summary> /// <param name="menifestName"></param> /// <returns></returns> public List <string> GetDirectDependencies(string manifestName) { ManifestItem item = null; if (this.Manifest.TryGetValue(manifestName, out item)) { if (item == null) { BDebug.LogError("资源为null:" + manifestName); } var list = new List <string>(item.Dependencies); list.Remove(manifestName); list.Add(manifestName); return(list); } return(new List <string>()); }
/// <summary> /// 加载资源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="abName"></param> /// <param name="objName"></param> /// <returns></returns> private Object LoadFormAssetBundle(ManifestItem item, Type t) { //判断资源结构 是单ab-单资源、单ab-多资源 //单ab 单资源 var sourceName = item.Name; //单ab 多资源 if (!string.IsNullOrEmpty(item.Package)) { item = this.config.Manifest.GetManifestItemByHash(item.Package); } Object o = null; AssetBundleWapper abr = null; if (assetbundleMap.TryGetValue(item.Hash, out abr)) { switch ((ManifestItem.AssetTypeEnum)item.Type) { //暂时需要特殊处理的只有一个 case ManifestItem.AssetTypeEnum.SpriteAtlas: { o = abr.LoadTextureFormAtlas(sourceName); } break; default: { o = abr.LoadAsset(sourceName, t); } break; } } else { BDebug.Log("资源不存在:" + sourceName, "red"); return(null); } return(o); }
/// <summary> /// 添加一个依赖 /// </summary> /// <param name="name"></param> /// <param name="dependencies"></param> public void AddDepend(string name, string UIID, List <string> dependencies) { var item = new ManifestItem() { Name = name, UIID = UIID, Dependencies = dependencies }; if (this.Manifest.ContainsKey(name)) { //prefab 嵌套的情况, 2018新系统 //被依赖项 其实也有依赖, if (dependencies.Count >= this.Manifest[name].Dependencies.Count) { this.Manifest[name] = item; } } else { this.Manifest[name] = item; } }