diff --git a/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs b/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs index a271872e..732ee0df 100644 --- a/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs +++ b/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs @@ -69,7 +69,6 @@ namespace YooAsset.Editor _scannerListView = root.Q("ScannerListView"); _scannerListView.makeItem = MakeScannerListViewItem; _scannerListView.bindItem = BindScannerListViewItem; - #if UNITY_2022_3_OR_NEWER _scannerListView.selectionChanged += ScannerListView_onSelectionChange; #elif UNITY_2020_1_OR_NEWER @@ -277,12 +276,19 @@ namespace YooAsset.Editor { _scannerListView.Clear(); _scannerListView.ClearSelection(); - _scannerListView.itemsSource = FilterScanners(); - _scannerListView.Rebuild(); - if (_lastModifyScannerIndex >= 0 && _lastModifyScannerIndex < _scannerListView.itemsSource.Count) + var filterItems = FilterScanners(); + if (AssetArtScannerSettingData.Setting.Scanners.Count == filterItems.Count) { - _scannerListView.selectedIndex = _lastModifyScannerIndex; + _scannerListView.reorderable = true; + _scannerListView.itemsSource = AssetArtScannerSettingData.Setting.Scanners; + _scannerListView.Rebuild(); + } + else + { + _scannerListView.reorderable = false; + _scannerListView.itemsSource = filterItems; + _scannerListView.Rebuild(); } } private List FilterScanners() @@ -344,31 +350,7 @@ namespace YooAsset.Editor // 显示检视面板 var scanSchema = selectScanner.LoadSchema(); - if (scanSchema != null) - { - var inspector = scanSchema.CreateInspector(); - if (inspector == null) - { - UIElementsTools.SetElementVisible(_inspectorContainer, false); - } - else - { - if (inspector.Containner is VisualElement container) - { - UIElementsTools.SetElementVisible(_inspectorContainer, true); - _inspectorContainer.Clear(); - _inspectorContainer.Add(container); - _inspectorContainer.style.width = inspector.Width; - _inspectorContainer.style.minWidth = inspector.MinWidth; - _inspectorContainer.style.maxWidth = inspector.MaxWidth; - } - else - { - Debug.LogWarning($"{nameof(ScannerSchema)} inspector container is invalid !"); - UIElementsTools.SetElementVisible(_inspectorContainer, false); - } - } - } + RefreshInspector(scanSchema); // 设置Schema对象 if (scanSchema == null) @@ -521,6 +503,38 @@ namespace YooAsset.Editor AssetArtScannerSettingData.RemoveCollector(selectSacnner, selectCollector); FillCollectorViewData(); } + + // 属性面板相关 + private void RefreshInspector(ScannerSchema scanSchema) + { + if (scanSchema == null) + { + UIElementsTools.SetElementVisible(_inspectorContainer, false); + return; + } + + var inspector = scanSchema.CreateInspector(); + if (inspector == null) + { + UIElementsTools.SetElementVisible(_inspectorContainer, false); + return; + } + + if (inspector.Containner is VisualElement container) + { + UIElementsTools.SetElementVisible(_inspectorContainer, true); + _inspectorContainer.Clear(); + _inspectorContainer.Add(container); + _inspectorContainer.style.width = inspector.Width; + _inspectorContainer.style.minWidth = inspector.MinWidth; + _inspectorContainer.style.maxWidth = inspector.MaxWidth; + } + else + { + Debug.LogWarning($"{nameof(ScannerSchema)} inspector container is invalid !"); + UIElementsTools.SetElementVisible(_inspectorContainer, false); + } + } } } #endif \ No newline at end of file diff --git a/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml b/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml index 2224ce24..840aafbd 100644 --- a/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml +++ b/Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml @@ -9,7 +9,7 @@ - +