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

@@ -0,0 +1,23 @@
using UnityEngine;
namespace BaseGames.Enemies.Perception
{
/// <summary>
/// 敌人感知系统接口。
/// EnemyBase 通过此接口与感知实现解耦支持运行时替换SensorToolkit / 自定义实现)。
/// </summary>
public interface IPerceptionSystem
{
/// <summary>指定槽位是否检测到任意目标。</summary>
bool HasAnyDetection(string slotName);
/// <summary>指定槽位是否正在检测 target 对象。</summary>
bool IsDetecting(string slotName, GameObject target);
/// <summary>返回指定槽位第一个检测到的对象,无检测则返回 null。</summary>
GameObject GetFirstDetection(string slotName);
/// <summary>暂停或恢复感知系统LOD / 超出活跃范围时调用)。</summary>
void SetSuspended(bool suspended);
}
}