#if UNITY_2019_4_OR_NEWER using System; using System.Linq; using System.Collections.Generic; using UnityEditor; using UnityEngine; using UnityEditor.UIElements; using UnityEngine.UIElements; namespace YooAsset.Editor { public class ShaderVariantCollectorWindow : EditorWindow { [MenuItem("YooAsset/ShaderVariant Collector", false, 201)] public static void ShowExample() { ShaderVariantCollectorWindow window = GetWindow("着色器变种收集工具", true, EditorDefine.DockedWindowTypes); window.minSize = new Vector2(800, 600); } private Button _collectButton; private TextField _collectOutputField; private Label _currentShaderCountField; private Label _currentVariantCountField; public void CreateGUI() { try { VisualElement root = this.rootVisualElement; // 加载布局文件 var visualAsset = EditorHelper.LoadWindowUXML(); if (visualAsset == null) return; visualAsset.CloneTree(root); // 文件输出目录 _collectOutputField = root.Q("CollectOutput"); _collectOutputField.SetValueWithoutNotify(ShaderVariantCollectorSettingData.Setting.SavePath); _collectOutputField.RegisterValueChangedCallback(evt => { ShaderVariantCollectorSettingData.Setting.SavePath = _collectOutputField.value; }); _currentShaderCountField = root.Q