UI系统组件

This commit is contained in:
2026-06-06 09:00:11 +08:00
parent fe4fd60083
commit d794b83ebe
107 changed files with 25690 additions and 476 deletions

View File

@@ -7,13 +7,14 @@ using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
using BaseGames.Localization;
using BaseGames.Editor.Localization;
namespace BaseGames.Editor.Modules
{
/// <summary>
/// DataHub 本地化审计模块。
/// 通过 <see cref="ILocalizableAsset"/> 接口扫描项目中所有 ScriptableObject 的本地化 Key
/// 与 Resources/Localization/ JSON 表比对,列出缺失条目和命名不规范条目。
/// 与 Assets/_Game/Data/Localization/ JSON 表比对,列出缺失条目和命名不规范条目。
///
/// 菜单入口DataHub → "本地化审计"
/// </summary>
@@ -168,15 +169,8 @@ namespace BaseGames.Editor.Modules
private void DiscoverLanguages()
{
string root = "Assets/Resources/Localization";
if (!AssetDatabase.IsValidFolder(root)) return;
foreach (var langFolder in AssetDatabase.GetSubFolders(root))
{
string langName = Path.GetFileName(langFolder);
if (Enum.TryParse<Language>(langName, out var lang))
_availableLanguages.Add(lang);
}
// 统一经 LocalizationFileIO 扫描真相源目录Assets/_Game/Data/Localization
_availableLanguages.AddRange(LocalizationFileIO.DiscoverLanguages());
}
// ── 通用 ILocalizableAsset 扫描 ───────────────────────────────────────
@@ -556,16 +550,14 @@ namespace BaseGames.Editor.Modules
private static void PingTableFile(string language, string tableName)
{
string path = $"Assets/Resources/Localization/{language}/{tableName}.json";
var asset = AssetDatabase.LoadAssetAtPath<TextAsset>(path);
if (asset != null)
if (Enum.TryParse<Language>(language, out var lang))
{
EditorGUIUtility.PingObject(asset);
Selection.activeObject = asset;
if (LocalizationFileIO.Ping(lang, tableName) == null)
Debug.LogWarning($"[LocalizationAudit] 未找到表文件:{LocalizationPaths.AssetPath(lang, tableName)}");
}
else
{
Debug.LogWarning($"[LocalizationAudit] 未找到表文件:{path}");
LocalizationFileIO.PingAny(tableName);
}
}
}