123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- //using System.Collections.Generic;
- //using System.IO;
- //using System.Linq;
- //using UnityEditor;
- //using UnityEngine;
- //namespace XGame.Editor.Build.AssetBundles
- //{
- // internal class BundleGroupController
- // {
- // private BundleContext _context;
- // public BundleGroupController(BundleContext context)
- // {
- // _context = context;
- // }
- // /// <summary>
- // /// 根据分组配置重新设置bundleName
- // /// TODO: 多语言的Assetbundle分包也需要调整到设置
- // /// </summary>
- // public void ModifyBundleNameByGroup()
- // {
- // ModifyBundleNameByGroup(CollectBundleGroupNames());
- // }
- // /// <summary>
- // /// 收集Assetbundle分组的GroupName
- // /// <key: assetPath, value: groupName>
- // /// </summary>
- // /// <param name="guidToAddressableName"></param>
- // /// <returns></returns>
- // private Dictionary<string, string> CollectBundleGroupNames()
- // {
- // var groupNameMap = new Dictionary<string, string>();
- // var packerManifest = ABPackerInfoManifest.Load();
- // if (packerManifest == null || packerManifest.GroupInfos == null || packerManifest.GroupInfos.Count < 1)
- // {
- // return groupNameMap;
- // }
- // foreach (var groupInfo in packerManifest.GroupInfos)
- // {
- // var groupName = groupInfo.groupName;
- // if (string.IsNullOrEmpty(groupName) || FileUtil.HasChinese(groupName))
- // {
- // Debug.LogWarning($"[XBuild]AssetbundleGroup 名字为空或者包含中文字符. ID:{groupInfo.GroupId}");
- // continue;
- // }
- // if (Framework.i18n.LanguageUtils.IsLanguage(groupName))
- // {
- // Debug.LogWarning($"[XBuild]AssetbundleGroup 名字不能为多语言枚举. GroupName:{groupName}");
- // continue;
- // }
- // groupName = groupName.ToLower();
- // foreach (var guid in groupInfo.guidList)
- // {
- // if (string.IsNullOrEmpty(guid))
- // {
- // continue;
- // }
- // var assetPath = AssetDatabase.GUIDToAssetPath(guid);
- // if (!assetPath.StartsWith(PathDefine.ResAddressableRelative))
- // {
- // Debug.LogWarning($"[XBuild]AssetbundleGroup 路径错误. GroupName:{groupName} assetPath:{assetPath}");
- // continue;
- // }
- // if (Directory.Exists(assetPath))
- // {
- // //是文件夹
- // var filePaths = FileUtil.FindFiles(assetPath);
- // foreach (var filePath in filePaths)
- // {
- // AddGroupItem(filePath, groupName, groupNameMap);
- // }
- // continue;
- // }
- // AddGroupItem(assetPath, groupName, groupNameMap);
- // }
- // }
- // Debug.Log($"CollectBundleGroupNames Count:{groupNameMap.Count}");
- // return groupNameMap;
- // }
- // private void AddGroupItem(string assetPath, string groupName, Dictionary<string, string> groupNameMap)
- // {
- // if (!_context.TryGetAddressableNameByPath(assetPath, out var addressableName))
- // {
- // return;
- // }
- // if (groupNameMap.ContainsKey(assetPath))
- // {
- // return;
- // }
- // //Debug.Log($"[XBuild]AddGroupItem addressableName:{addressableName} groupName:{groupName}");
- // groupNameMap.Add(assetPath, groupName);
- // }
- // /// <summary>
- // /// 根据分组配置重新设置bundleName
- // /// TODO: 多语言的Assetbundle分包也需要调整到设置
- // /// </summary>
- // /// <param name="bundleBuilds"></param>
- // /// <param name="groupNameMap"></param>
- // private void ModifyBundleNameByGroup(Dictionary<string, string> groupNameMap)
- // {
- // if (groupNameMap == null || groupNameMap.Count == 0)
- // return;
- // var builds = _context.bundleBuildMap.Values.ToArray();
- // foreach (var build in builds)
- // {
- // if (TryGetGroupName(build.assetNames, groupNameMap, out var groupName))
- // {
- // var buildCopy = build;
- // buildCopy.assetBundleName = $"{groupName}/{build.assetBundleName}";
- // _context.bundleBuildMap[buildCopy.bundleId] = buildCopy;
- // }
- // }
- // }
- // private bool TryGetGroupName(string[] assetNames, Dictionary<string, string> groupNameMap, out string groupName)
- // {
- // foreach (var assetName in assetNames)
- // {
- // if (groupNameMap.ContainsKey(assetName))
- // {
- // groupName = groupNameMap[assetName];
- // return true;
- // }
- // }
- // groupName = string.Empty;
- // return false;
- // }
- // }
- //}
|