#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 List _collectorTypeList; private List _addressRuleList; private List _packRuleList; private List _filterRuleList; private ListView _groupListView; private ScrollView _collectorScrollView; private Toggle _enableAddressableToogle; private Toggle _autoCollectShaderToogle; private TextField _shaderBundleNameTxt; 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)}" }; _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 exportBtn = root.Q