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

@@ -25,9 +25,11 @@ namespace BaseGames.World
[SerializeField] private string _targetTransitionId; // 目标房间出生点 ID
[Header("过渡类型")]
[Tooltip("Room极短淡出无加载画面相邻房间边界专用。\n" +
"Scene完整淡出 + 加载画面,大区域/地图间切换专用。")]
[SerializeField] private TransitionType _transitionType = TransitionType.Room;
[Tooltip("Seamless无缝切换流式系统标准选项绝大多数房间门使用此类型。\n" +
"AtmosphericFade短暂淡出 + 区域名提示,适合跨大区域边界。\n" +
"Room极短淡出不走流式系统仅用于非流式独立场景切换。\n" +
"Scene完整淡出 + 加载画面,大区域/地图间传送专用。")]
[SerializeField] private TransitionType _transitionType = TransitionType.Seamless;
[Header("触发方式")]
[SerializeField] private bool _autoTrigger = true; // true = 玩家进入触发器自动触发