#if UNITY_2019_4_OR_NEWER using System.IO; using System.Linq; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEditor.UIElements; using UnityEngine.UIElements; namespace YooAsset.Editor { public class AssetBundleCollectorWindow : EditorWindow { [MenuItem("YooAsset/AssetBundle Collector", false, 101)] public static void ShowExample() { AssetBundleCollectorWindow window = GetWindow("资源包收集工具", true, EditorDefine.DockedWindowTypes); window.minSize = new Vector2(800, 600); } private Button _saveButton; private List _collectorTypeList; private List _activeRuleList; private List _addressRuleList; private List _packRuleList; private List _filterRuleList; private ListView _groupListView; private ScrollView _collectorScrollView; private PopupField _activeRulePopupField; private Toggle _enableAddressableToogle; private TextField _groupNameTxt; private TextField _groupDescTxt; private TextField _groupAssetTagsTxt; private VisualElement _groupContainer; private string _lastModifyGroup = string.Empty; public void CreateGUI() { Undo.undoRedoPerformed -= RefreshWindow; Undo.undoRedoPerformed += RefreshWindow; try { _collectorTypeList = new List() { $"{nameof(ECollectorType.MainAssetCollector)}", $"{nameof(ECollectorType.StaticAssetCollector)}", $"{nameof(ECollectorType.DependAssetCollector)}" }; _activeRuleList = AssetBundleCollectorSettingData.GetActiveRuleNames(); _addressRuleList = AssetBundleCollectorSettingData.GetAddressRuleNames(); _packRuleList = AssetBundleCollectorSettingData.GetPackRuleNames(); _filterRuleList = AssetBundleCollectorSettingData.GetFilterRuleNames(); VisualElement root = this.rootVisualElement; // 加载布局文件 var visualAsset = EditorHelper.LoadWindowUXML(); if (visualAsset == null) return; visualAsset.CloneTree(root); // 配置修复按钮 var fixBtn = root.Q