- 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.
24 lines
876 B
C#
24 lines
876 B
C#
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);
|
||
}
|
||
}
|