- 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.
70 lines
2.2 KiB
C#
70 lines
2.2 KiB
C#
using System;
|
||
using UnityEngine;
|
||
using Animancer;
|
||
using BaseGames.Combat;
|
||
|
||
namespace BaseGames.Boss
|
||
{
|
||
/// <summary>
|
||
/// Boss 单个技能的所有数据,包括攻击模式、弱点窗口、互动标签等。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/Boss/BossSkill")]
|
||
public class BossSkillSO : ScriptableObject
|
||
{
|
||
[Header("元信息")]
|
||
[Tooltip("技能唯一标识符(全小写英文 + 下划线,如 'slash_combo'、'phase_dash')。BD_UseBossSkill 通过此 Id 引用")]
|
||
public string skillId;
|
||
[Tooltip("编辑器中显示的可读名称,不影响运行逻辑")]
|
||
public string displayName;
|
||
[TextArea(1, 4)]
|
||
[Tooltip("设计备注(仅供编辑器参考,不影响运行)")]
|
||
public string designNote;
|
||
|
||
[Header("技能分类")]
|
||
public BossSkillCategory category;
|
||
public BossSkillType skillType;
|
||
|
||
[Header("阶段可用性")]
|
||
[Tooltip("空数组 = 全阶段可用")]
|
||
public int[] availablePhaseIndices;
|
||
|
||
[Header("核心攻击动作引用")]
|
||
public AttackPatternSO[] attackPatterns;
|
||
|
||
[Header("弱点窗口(至少 1 个)")]
|
||
public VulnerabilityWindow[] vulnerabilityWindows;
|
||
|
||
[Header("互动标签")]
|
||
public InteractionTag interactionTags;
|
||
|
||
[Header("连段")]
|
||
public SkillSequenceSO sequenceOnHit;
|
||
public SkillSequenceSO sequenceOnMiss;
|
||
|
||
[Header("玩家反制接口")]
|
||
public PlayerCounterResponse[] counterResponses;
|
||
|
||
[Header("场景联动")]
|
||
public ArenaEventTrigger[] arenaEvents;
|
||
|
||
[Header("Boss 资源")]
|
||
public BossResourceCost resourceCost;
|
||
public bool buildsRage;
|
||
|
||
[Header("霸体配置")]
|
||
public PoiseWindowConfig poiseWindow;
|
||
|
||
[Header("动画")]
|
||
public ClipTransition skillAnimation;
|
||
|
||
[Header("冷却")]
|
||
[Min(0f)]
|
||
public float cooldown;
|
||
|
||
[Header("权重随机(UseBossSkillWeighted 使用)")]
|
||
[Tooltip("相对权重,数值越大被随机选中的概率越高;0 = 禁用随机选择")]
|
||
[Min(0f)]
|
||
public float weight = 1f;
|
||
}
|
||
}
|