- 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.
47 lines
1.9 KiB
C#
47 lines
1.9 KiB
C#
using UnityEngine;
|
||
|
||
namespace BaseGames.Enemies.Abilities
|
||
{
|
||
/// <summary>
|
||
/// 能力配置包(架构 07_EnemyModule §8.2)。
|
||
/// 一个能力 = 一组攻击段 + 公共参数(冷却/预警/中断规则)。
|
||
/// 由对应 EnemyAbilityBase 子类组件读取并执行。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/Enemies/Enemy Ability", fileName = "EAB_")]
|
||
public class EnemyAbilitySO : ScriptableObject
|
||
{
|
||
[Header("标识")]
|
||
[Tooltip("BD 任务通过此 Id 调用能力(如 \"melee_combo\" / \"blink_strike\")")]
|
||
public string abilityId = "ability_id";
|
||
|
||
[Header("攻击序列")]
|
||
public EnemyAttackSO[] attackSequence;
|
||
|
||
[Header("冷却(秒,从能力执行结束开始计)")]
|
||
[Min(0f)] public float cooldown = 1.5f;
|
||
|
||
[Header("预警(Telegraph)")]
|
||
[Tooltip("预警 VFX key(IObjectPoolService.Spawn 的池 key),为空则跳过")]
|
||
public string telegraphVfxKey = "";
|
||
[Min(0f)] public float telegraphDuration = 0f;
|
||
|
||
[Header("中断规则")]
|
||
[Tooltip("受击时是否打断能力(false=能力具霸体)")]
|
||
public bool interruptOnHurt = true;
|
||
[Tooltip("Stagger 时是否打断(一般为 true)")]
|
||
public bool interruptOnStagger = true;
|
||
|
||
[Header("调度提示(供 AI 选择参考,不强制)")]
|
||
[Min(0f)] public float preferredMinRange = 0f;
|
||
[Min(0f)] public float preferredMaxRange = 5f;
|
||
public bool requiresLineOfSight = true;
|
||
public bool requiresGrounded = true;
|
||
|
||
[Header("互斥组与调度优先级")]
|
||
[Tooltip("互斥组名:同组能力只能有一个同时执行,执行时自动中断同组其他能力;为空 = 无互斥")]
|
||
public string exclusionGroup = "";
|
||
[Tooltip("AI 调度优先级(值越高越优先被选择,冷却就绪时对比)")]
|
||
[Min(0)] public int priority = 0;
|
||
}
|
||
}
|