feat: Implement Room Streaming System

- Add RoomStreamingManager to manage room loading and unloading based on player proximity.
- Create StreamingBudgetConfigSO for memory and performance budgeting of the streaming system.
- Introduce TransitionDirector to handle seamless and atmospheric fade transitions between rooms.
- Develop WorldGraph to represent room connectivity and facilitate neighbor queries and distance calculations.
- Implement RoomNode and RoomEdge classes to structure room data and connections.
This commit is contained in:
2026-05-23 19:10:29 +08:00
parent 81c326af53
commit a1b4e629aa
165 changed files with 7904 additions and 313 deletions

View File

@@ -57,6 +57,7 @@ namespace BaseGames.Editor
("SPL_", "Config"), // 法术配置 SO
("ABL_", "Config"), // 能力配置 SO
("MAP_", "Config"), // 地图数据 SOAssetFolderSpec §4
("STR_", "Config"), // 流式加载配置 SOStreamingBudgetConfigSO
("Config/", "Config"), // 路径前缀配置AssetFolderSpec §8.2
// ── 音频AUD_BGM_ / AUD_SFX_ 必须在通配 AUD_ 之前)─────────────
("AUD_BGM_", "Audio_Music"), // BGM 流式音频
@@ -79,6 +80,8 @@ namespace BaseGames.Editor
{ AddressKeys.PrefabUIFloatingDmgText, new[] { AddressKeys.Labels.Poolable, AddressKeys.Labels.Preload } },
// FootstepCatalog 是首帧必须可用的配置
{ AddressKeys.DataFootstepCatalog, new[] { AddressKeys.Labels.Config, AddressKeys.Labels.Preload } },
// 流式加载预算配置,运行时初始化前必须可用
{ AddressKeys.DataStreamingBudgetConfig, new[] { AddressKeys.Labels.Config, AddressKeys.Labels.Preload } },
};
// ── 前缀 → 标签列表 ─────────────────────────────────────────────────────
@@ -105,6 +108,7 @@ namespace BaseGames.Editor
// ── 配置数据 ─────────────────────────────────────────────────────
("CHM_", new[] { AddressKeys.Labels.Charms }),
("MAP_", new[] { AddressKeys.Labels.Config }), // 地图数据 SO 为动态加载配置
("STR_", new[] { AddressKeys.Labels.Config }), // 流式加载配置 SOStreamingBudgetConfigSO
("Config/", new[] { AddressKeys.Labels.Config }),
// ── 技能 / 法术 / 能力 / 世界物件 / 持久化:无批量加载需求,不加 Label ──
("SKL_", Array.Empty<string>()),