123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- namespace YooAsset.Editor
- {
- [CreateAssetMenu(fileName = "AssetBundleCollectorSetting", menuName = "YooAsset/Create AssetBundle Collector Settings")]
- public class AssetBundleCollectorSetting : ScriptableObject
- {
- /// <summary>
- /// 显示包裹列表视图
- /// </summary>
- public bool ShowPackageView = false;
- /// <summary>
- /// 启用可寻址资源定位
- /// </summary>
- public bool EnableAddressable = false;
- /// <summary>
- /// 资源定位地址大小写不敏感
- /// </summary>
- public bool LocationToLower = false;
- /// <summary>
- /// 包含资源GUID数据
- /// </summary>
- public bool IncludeAssetGUID = false;
- /// <summary>
- /// 资源包名唯一化
- /// </summary>
- public bool UniqueBundleName = false;
- /// <summary>
- /// 是否显示编辑器别名
- /// </summary>
- public bool ShowEditorAlias = false;
- /// <summary>
- /// 包裹列表
- /// </summary>
- public List<AssetBundleCollectorPackage> Packages = new List<AssetBundleCollectorPackage>();
- /// <summary>
- /// 清空所有数据
- /// </summary>
- public void ClearAll()
- {
- ShowPackageView = false;
- EnableAddressable = false;
- LocationToLower = false;
- IncludeAssetGUID = false;
- UniqueBundleName = false;
- ShowEditorAlias = false;
- Packages.Clear();
- }
- /// <summary>
- /// 检测配置错误
- /// </summary>
- public void CheckConfigError()
- {
- foreach (var package in Packages)
- {
- package.CheckConfigError();
- }
- }
- /// <summary>
- /// 修复配置错误
- /// </summary>
- public bool FixConfigError()
- {
- bool isFixed = false;
- foreach (var package in Packages)
- {
- if (package.FixConfigError())
- {
- isFixed = true;
- }
- }
- return isFixed;
- }
- /// <summary>
- /// 获取所有的资源标签
- /// </summary>
- public List<string> GetPackageAllTags(string packageName)
- {
- foreach (var package in Packages)
- {
- if (package.PackageName == packageName)
- {
- return package.GetAllTags();
- }
- }
- Debug.LogWarning($"Not found package : {packageName}");
- return new List<string>();
- }
- /// <summary>
- /// 获取包裹收集的资源文件
- /// </summary>
- public CollectResult GetPackageAssets(EBuildMode buildMode, string packageName)
- {
- if (string.IsNullOrEmpty(packageName))
- throw new Exception("Build package name is null or mepty !");
- foreach (var package in Packages)
- {
- if (package.PackageName == packageName)
- {
- CollectCommand command = new CollectCommand(buildMode, packageName,
- EnableAddressable, LocationToLower, IncludeAssetGUID, UniqueBundleName);
- CollectResult collectResult = new CollectResult(command);
- collectResult.SetCollectAssets(package.GetAllCollectAssets(command));
- return collectResult;
- }
- }
- throw new Exception($"Not found collector pacakge : {packageName}");
- }
- }
- }
|