public static void CollectionAllAssets(bool isUpdate) { m_abbuildDic.Clear(); m_dependsDic.Clear(); m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.shaders_ab); CollectFromDirectinfo("XGame/Public/Resources", isUpdate); CollectFromDirectinfo("XGame/Resources/Shaders", isUpdate); //主要图集 和 字体 m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.uialtas_ab); CollectFromDirectinfo("XGame/Resources/EZFunUI/Altas/Release", isUpdate); CollectFromDirectinfo("XGame/Data/UI/AltasRef", isUpdate); CollectFromDirectinfo("XGame/Resources/EZFunUI/Font", isUpdate); //主要ui m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.ui_ab); CollectFromDirectinfo("XGame/Resources/EZFunUI", isUpdate); CollectFromDirectinfo("XGame/Resources/SuperTextMesh", isUpdate); //主要是角色模型技能等 m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.model_ab); CollectFromDirectinfo("XGame/Resources/Prefab", isUpdate); m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.scene_ab); CollectFromDirectinfo("XGame/Scene/Release", isUpdate, "unity"); // 场景prefab m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.scenemodle_ab); CollectFromDirectinfo("XGame/Resources/Scene", isUpdate); }
private static ABAssetInfo ColloectDependecies(string prefabPath, string fileName = "") { prefabPath = prefabPath.ToLower(); string[] depends = AssetDatabase.GetDependencies(prefabPath, false); //场景比较特殊是因为场景ab不能包含其他的资源,场景自己一个ab,所以得把场景引用的资源挪到scenemodle_ab中去 if (prefabPath.EndsWith(".unity")) { if (fileName.Contains(".")) { fileName = fileName.Substring(0, fileName.IndexOf(".")); } m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.scene_ab, fileName); if (!m_abbuildDic.ContainsKey(m_curretBundleID)) { ABBundleInfo buildInfo = new ABBundleInfo(); buildInfo.bundleId = m_curretBundleID; buildInfo.firstVersion = m_currentCache.firstVersion; m_abbuildDic.Add(m_curretBundleID, buildInfo); } } ABAssetInfo parentAssetInfo = null; if (!m_dependsDic.ContainsKey(prefabPath)) { parentAssetInfo = LoadAssetData(prefabPath); m_dependsDic.Add(prefabPath, parentAssetInfo); if (depends != null) { for (int i = 0; i < depends.Length; i++) { depends[i] = depends[i].ToLower().Replace("\\", "/"); if (!depends[i].EndsWith("dll") && !depends[i].EndsWith("cs") && !depends[i].EndsWith("js")) { //场景比较特殊是因为场景ab不能包含其他的资源,场景自己一个ab,所以得把场景引用的资源挪到scenemodle_ab中去 if (prefabPath.EndsWith(".unity")) { m_curretBundleID = new BundleID(m_currentCache.firstVersion, EnumAB.scenemodle_ab); } var childAssetInfo = ColloectDependecies(depends[i]); parentAssetInfo.AddChild(childAssetInfo); } } } } else { parentAssetInfo = m_dependsDic[prefabPath]; } return(parentAssetInfo); }
private static ABBundleInfo GetUpdateABBuild(EnumAB bundleType, string sceneName = "") { ABBundleInfo build = null; var bundleId = new BundleID(m_curVersion, bundleType, sceneName); if (m_abbuildDic.ContainsKey(bundleId)) { build = m_abbuildDic[bundleId]; } else { build = new ABBundleInfo(); build.bundleId = bundleId; m_abbuildDic.Add(bundleId, build); } return(build); }
public static void BuildSpecialBundleAndriod() { BuildTarget buildTargetGroup = BuildTarget.Android; string buildPath = EditorUtility.OpenFolderPanel("选择目录", Application.dataPath, ""); if (string.IsNullOrEmpty(buildPath)) { return; } LoadAndVerions(buildTargetGroup, false, 99999); m_curretBundleID = new BundleID(99999, EnumAB.ui_ab); CollectFromDirectinfo(buildPath, false); List <AssetBundleBuild> buildsList = new List <AssetBundleBuild>(); foreach (var keyValue in m_abbuildDic) { buildsList.Add(keyValue.Value.GetBundleBuild()); } ProcessCacheDic(false); BuildAssetBuindles(buildTargetGroup, 99999); }
public override int GetHashCode() { int hash = 1; if (ChannelName.Length != 0) { hash ^= ChannelName.GetHashCode(); } if (Sdk.Length != 0) { hash ^= Sdk.GetHashCode(); } if (Platform.Length != 0) { hash ^= Platform.GetHashCode(); } if (Source.Length != 0) { hash ^= Source.GetHashCode(); } if (BundleID.Length != 0) { hash ^= BundleID.GetHashCode(); } if (DownloadName.Length != 0) { hash ^= DownloadName.GetHashCode(); } if (UpdateInGame != false) { hash ^= UpdateInGame.GetHashCode(); } if (ProductName.Length != 0) { hash ^= ProductName.GetHashCode(); } return(hash); }