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

@@ -269,6 +269,7 @@ Data/
├── World/
│ ├── Map/ 地图与房间配置
│ └── Shop/ 商店配置
├── Streaming/ 流式加载配置StreamingBudgetConfigSO
├── UI/
│ ├── Panels/ UI 面板配置
│ └── InputIcons/ 按键图标集 SO每设备一个文件通过 Inspector 直接引用,不走 Addressables
@@ -296,6 +297,7 @@ Data/
| `SET_` | 设置 | `SET_GlobalSettings.asset` |
| `ABL_` | 能力 | `ABL_DoubleJump.asset` |
| `ICN_` | 按键图标集 | `ICN_KeyboardMouse.asset``ICN_Xbox.asset` |
| `STR_` | 流式加载配置 | `STR_BudgetConfig_Default.asset` |
### 3.3 事件频道 SO 特别规则
@@ -491,7 +493,7 @@ UI Toolkit/
| `Room_{Region}` | 该区域的关卡场景 + 区域专属资产 | Local | 进入区域时加载 |
| `Boss_{Name}` | Boss 专属 Prefab + 场景 | Local | Boss 战开始前加载 |
| `Audio_Music` | BGM 音频FMOD bank 引用) | Remote可选| 按需流式加载 |
| `Config` | 运行时需要动态加载的配置 SO | Local | 按需加载 |
| `Config` | 运行时需要动态加载的配置 SO(含 `STR_BudgetConfig_Default``Config/FootstepCatalog` 等) | Local | 按需加载 |
**划分原则**
1. **生命周期相同的资源放同一组**——一起加载、一起卸载
@@ -522,6 +524,7 @@ Boss_CaoZhi
# 配置数据类(带路径前缀区分)
Config/FootstepCatalog
Config/DifficultyEasy
Config/StreamingBudgetConfig
```
**强制要求**:所有 Address 必须在 `AddressKeys.cs` 中定义对应常量,**禁止在代码中硬编码字符串**。