| 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}");		}	}}
 |