From 7cc985205a784da16c52875df971ed8f977e22be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Wed, 22 Jan 2025 15:19:16 +0800 Subject: [PATCH] update AssetArtScanner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 资源扫描工具 --- Assets/YooAsset/Editor/AssetArtReporter.meta | 8 + .../AssetArtReporterWindow.cs | 577 ++++++++++++++++++ .../AssetArtReporterWindow.cs.meta | 11 + .../AssetArtReporterWindow.uxml | 19 + .../AssetArtReporterWindow.uxml.meta | 10 + .../Editor/AssetArtReporter/EHeaderType.cs | 14 + .../AssetArtReporter/EHeaderType.cs.meta | 11 + .../Editor/AssetArtReporter/ReportElement.cs | 67 ++ .../AssetArtReporter/ReportElement.cs.meta | 11 + .../Editor/AssetArtReporter/ReportHeader.cs | 89 +++ .../AssetArtReporter/ReportHeader.cs.meta | 11 + .../Editor/AssetArtReporter/ReportScanInfo.cs | 26 + .../AssetArtReporter/ReportScanInfo.cs.meta | 11 + .../Editor/AssetArtReporter/ScanReport.cs | 65 ++ .../AssetArtReporter/ScanReport.cs.meta | 11 + .../AssetArtReporter/ScanReportCombiner.cs | 219 +++++++ .../ScanReportCombiner.cs.meta | 11 + .../AssetArtReporter/ScanReportConfig.cs | 54 ++ .../AssetArtReporter/ScanReportConfig.cs.meta | 11 + Assets/YooAsset/Editor/AssetArtScanner.meta | 8 + .../AssetArtScanner/AssetArtCollector.cs | 15 + .../AssetArtScanner/AssetArtCollector.cs.meta | 11 + .../Editor/AssetArtScanner/AssetArtScanner.cs | 112 ++++ .../AssetArtScanner/AssetArtScanner.cs.meta | 11 + .../AssetArtScanner/AssetArtScannerConfig.cs | 85 +++ .../AssetArtScannerConfig.cs.meta | 11 + .../AssetArtScanner/AssetArtScannerSetting.cs | 17 + .../AssetArtScannerSetting.cs.meta | 11 + .../AssetArtScannerSettingData.cs | 203 ++++++ .../AssetArtScannerSettingData.cs.meta | 11 + .../AssetArtScanner/AssetArtScannerWindow.cs | 481 +++++++++++++++ .../AssetArtScannerWindow.cs.meta | 11 + .../AssetArtScannerWindow.uxml | 34 ++ .../AssetArtScannerWindow.uxml.meta | 10 + .../Editor/AssetArtScanner/ScannerDefine.cs | 26 + .../AssetArtScanner/ScannerDefine.cs.meta | 11 + .../Editor/AssetArtScanner/ScannerResult.cs | 59 ++ .../AssetArtScanner/ScannerResult.cs.meta | 11 + .../Editor/AssetArtScanner/ScannerSchema.cs | 24 + .../AssetArtScanner/ScannerSchema.cs.meta | 11 + 40 files changed, 2409 insertions(+) create mode 100644 Assets/YooAsset/Editor/AssetArtReporter.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.uxml create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.uxml.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/EHeaderType.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/EHeaderType.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportElement.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportElement.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportHeader.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportHeader.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportScanInfo.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ReportScanInfo.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReport.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReport.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReportCombiner.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReportCombiner.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReportConfig.cs create mode 100644 Assets/YooAsset/Editor/AssetArtReporter/ScanReportConfig.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtCollector.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtCollector.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScanner.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScanner.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerConfig.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerConfig.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerSetting.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerSetting.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerSettingData.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerSettingData.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/AssetArtScannerWindow.uxml.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerDefine.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerDefine.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerResult.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerResult.cs.meta create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerSchema.cs create mode 100644 Assets/YooAsset/Editor/AssetArtScanner/ScannerSchema.cs.meta diff --git a/Assets/YooAsset/Editor/AssetArtReporter.meta b/Assets/YooAsset/Editor/AssetArtReporter.meta new file mode 100644 index 00000000..152a582c --- /dev/null +++ b/Assets/YooAsset/Editor/AssetArtReporter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdbb4647038dcc842802f546c2fedc83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.cs b/Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.cs new file mode 100644 index 00000000..7ac77b5a --- /dev/null +++ b/Assets/YooAsset/Editor/AssetArtReporter/AssetArtReporterWindow.cs @@ -0,0 +1,577 @@ +#if UNITY_2019_4_OR_NEWER +using System; +using System.IO; +using System.Linq; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityEditor.UIElements; +using UnityEngine.UIElements; +using UnityEngine.Tilemaps; + +namespace YooAsset.Editor +{ + public class AssetArtReporterWindow : EditorWindow + { + [MenuItem("YooAsset/AssetArt Reporter", false, 302)] + public static AssetArtReporterWindow OpenWindow() + { + AssetArtReporterWindow window = GetWindow("资源扫描报告", true, WindowsDefine.DockedWindowTypes); + window.minSize = new Vector2(800, 600); + return window; + } + + private class ElementTableData : DefaultTableData + { + public ReportElement Element; + } + private class PassesBtnCell : ITableCell, IComparable + { + public object CellValue { set; get; } + public string SearchTag { private set; get; } + public ReportElement Element + { + get + { + return (ReportElement)CellValue; + } + } + + public PassesBtnCell(string searchTag, ReportElement element) + { + SearchTag = searchTag; + CellValue = element; + } + public object GetDisplayObject() + { + return string.Empty; + } + public int CompareTo(object other) + { + if (other is PassesBtnCell cell) + { + return this.Element.Passes.CompareTo(cell.Element.Passes); + } + else + { + return 0; + } + } + } + private class WhiteListBtnCell : ITableCell, IComparable + { + public object CellValue { set; get; } + public string SearchTag { private set; get; } + public ReportElement Element + { + get + { + return (ReportElement)CellValue; + } + } + + public WhiteListBtnCell(string searchTag, ReportElement element) + { + SearchTag = searchTag; + CellValue = element; + } + public object GetDisplayObject() + { + return string.Empty; + } + public int CompareTo(object other) + { + if (other is PassesBtnCell cell) + { + return this.Element.IsWhiteList.CompareTo(cell.Element.IsWhiteList); + } + else + { + return 0; + } + } + } + + private ToolbarSearchField _searchField; + private Button _whiteVisibleBtn; + private Button _stateVisibleBtn; + private Label _titleLabel; + private Label _descLabel; + private TableView _elementTableView; + + private ScanReportCombiner _reportCombiner; + private string _lastestOpenFolder; + private List _sourceDatas; + private bool _showWhiteElements = true; + private bool _showPassesElements = true; + + + public void CreateGUI() + { + try + { + VisualElement root = this.rootVisualElement; + + // 加载布局文件 + var visualAsset = UxmlLoader.LoadWindowUXML(); + if (visualAsset == null) + return; + + visualAsset.CloneTree(root); + + // 导入按钮 + var singleImportBtn = root.Q