Game_Num_Basics_And_Calc

⚔️ Vampirefall 游戏技能系统 (GAS) 设计方案

1. 概述 (Overview)

Gameplay Ability System (GAS) 是一个用于处理交互、技能和属性变更的数据驱动框架。虽然它源自 Unreal Engine,但我们将把其核心设计哲学适配到 Unity 中,用于 Project Vampirefall

为什么 Vampirefall 需要 GAS?


2. 核心架构 (Core Architecture)

2.1 技能系统组件 (Ability System Component, ASC)

AbilitySystemComponent 是挂载在每个可交互实体(英雄、防御塔、怪物)上的核心大脑。

2.2 属性集 (Attributes / AttributeSet)

属性是代表实体状态的浮点数值。

Vampirefall 的关键属性:

2.3 游戏标签 (Gameplay Tags)

用于逻辑判断和状态管理的层级化字符串。为了性能,我们使用 uint 哈希或 ScriptableObject 引用。

2.4 游戏效果 (Gameplay Effects, GE)

这是改变属性的 唯一 途径。GE 是纯数据对象 (ScriptableObject)。

2.5 游戏技能 (Gameplay Abilities, GA)

定义动作的具体逻辑。


3. 实现策略 (Unity DOTS/Hybrid)

鉴于 Vampirefall 的高实体数量(塔防特性),我们需要采用混合架构。

3.1 数据导向的效果处理 (DOTS)

对于海量单位(怪物),GameplayEffects 应当通过 ECS 处理。

3.2 事件驱动的技能 (MonoBehaviour)

对于英雄和复杂的防御塔,我们可以使用包裹在 ECS 核心之上的轻量级事件驱动层。


4. 工作流与工具 (Workflow & Tooling)

4.1 创建新技能示例:“冰霜新星” (Frost Nova)

  1. 创建 GE_FrostSlow (冰霜减速):
    • 类型: HasDuration (3秒)。
    • 修饰器: MoveSpeed * 0.5。
    • 授予标签: State.Debuff.Cold
  2. 创建 GE_FrostDamage (冰霜伤害):
    • 类型: Instant
    • 修饰器: Health - 50。
  3. 创建 GA_FrostNova (冰霜新星技能):
    • 逻辑: 半径 5米的球形检测。
    • 应用: 对所有带有 Unit.Team.Enemy 标签的目标应用 GE_FrostSlowGE_FrostDamage
    • 表现: 生成 VFX “FrostExplosion”。

4.2 调试工具


5. 与其他系统的集成