feat: Addressables rules/sync tools, UI fixes, AddressKeys update

- Add AddressableRules.cs: single source of truth for prefix->group and prefix->label rules
- Add AddressableRuleSyncWindow.cs: scan/fix/export-CSV tool (BaseGames > Addressables > Rule Sync)
- AddressableBatchTool.cs: delegate DeriveGroupName to AddressableRules, remove duplicate PrefixGroupMap
- AddressKeys.cs: add Labels constants (Preload, Poolable, Enemy, BGM, SFX, Charms, Config, Weapon)
- Docs/Standards/AddressablesLabelSpec.md: new label naming & assignment spec
- Docs/Standards/AssetFolderSpec.md: update Addressables group strategy section
- SplashScreenController.cs: fix MainMenu loading flow
- BootFlowSetupWizard.cs / SceneScaffoldTools.cs: scene scaffold fixes
- PlayerInputActions: set UI/Point to Pass-Through type
- Persistent.unity: add BootSequencer to auto-load MainMenu on play
- EditorBuildSettings.asset: register scenes for build

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-05-20 11:10:31 +08:00
parent 5fd981f5b9
commit c88d2d0549
46 changed files with 6099 additions and 2588 deletions

View File

@@ -57,14 +57,29 @@ namespace BaseGames.Core.Assets
/// Addressable 标签常量(用于批量加载)。
/// 注意:这里是标签名称而非资产地址,不会被 AddressKeyValidator 校验。
/// </summary>
/// <summary>
/// Addressable Label 常量(用于批量加载与预热)。
/// 代码中引用 Label 时必须使用此处的常量,禁止硬编码字符串。
/// 完整说明见 Docs/Standards/AddressablesLabelSpec.md。
/// </summary>
public static class Labels
{
public const string Enemy = "Enemy";
public const string Poolable = "Poolable";
public const string BGM = "BGM";
public const string Charms = "Charms";
/// <summary>游戏启动时预热下载的资产标签BootSequencer 使用)。</summary>
/// <summary>游戏启动时通过 DownloadDependenciesAsync 预热下载依赖BootSequencer 使用)。</summary>
public const string Preload = "Preload";
/// <summary>纳入 GlobalObjectPool 对象池管理的 PrefabVFX、投射物、收集物等。</summary>
public const string Poolable = "Poolable";
/// <summary>所有敌人顶级 Prefab用于区域 Spawner 批量加载。</summary>
public const string Enemy = "Enemy";
/// <summary>背景音乐 AudioClip / FMOD bank 引用 SOAudioManager 批量建立 BGM 索引。</summary>
public const string BGM = "BGM";
/// <summary>音效 AudioClip / SFX 配置 SOAudioManager 批量建立 SFX 索引。</summary>
public const string SFX = "SFX";
/// <summary>所有护身符配置 SOCHM_*.assetEquipmentManager 批量加载护身符列表。</summary>
public const string Charms = "Charms";
/// <summary>运行时动态加载的配置类 SOInspector 直接引用的 SO 不加此标签)。</summary>
public const string Config = "Config";
/// <summary>所有武器 PrefabWPN_*.prefab玩家换形态时批量加载武器列表。</summary>
public const string Weapon = "Weapon";
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: da575c82357778a4baa083a9afcb1b8a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: