跳转到内容

ECS 节点参考

本文档提供蓝图系统所有内置节点的完整参考,包含可视化示例。

执行流 (Exec)
实体 (Entity)
组件 (Component)
数值 (Float)
字符串 (String)
布尔 (Boolean)

生命周期事件,作为蓝图执行的入口点:

节点说明输出
EventBeginPlay蓝图启动时触发Exec, Self (Entity)
EventTick每帧触发Exec, Delta Time
EventEndPlay蓝图停止时触发Exec

自定义事件节点允许你定义自己的事件,通过代码触发蓝图逻辑。

节点说明输出
EventCustom自定义事件,通过代码触发Exec, 自定义参数

创建自定义事件:

在蓝图编辑器中创建自定义事件节点时,需要设置:

  • 事件名称 (eventName):用于代码中触发事件
  • 输出参数:事件传递的数据,如 damageamount

通过代码触发自定义事件:

// 获取实体的蓝图组件
const blueprint = entity.getComponent(BlueprintComponent);
// 触发自定义事件,传递参数
blueprint.vm?.triggerCustomEvent('OnDamage', {
damage: 50,
source: attackerEntity
});
// 触发无参数事件
blueprint.vm?.triggerCustomEvent('OnPickup');

蓝图中接收事件数据:

自定义事件节点会将传递的参数作为输出引脚暴露:

Event OnDamage
Self
Damage
Print
Exec
Msg

常用自定义事件示例:

事件名用途参数示例
OnDamage受到伤害{ damage: number, source: Entity }
OnHeal治疗{ amount: number }
OnCollision碰撞检测{ other: Entity, point: Vector2 }
OnPickup拾取物品{ item: Entity }
OnInteract交互{ player: Entity }
OnDeath死亡{ killer: Entity }
Event BeginPlay
Self
Print
Exec
Message "游戏开始!"
Event Tick
Delta Time
Multiply
A
B 100
Result
Set Property
Exec
Target
x

操作 ECS 实体:

节点说明类型
Get Self获取拥有此蓝图的实体纯节点
Create Entity在场景中创建新实体执行节点
Destroy Entity销毁指定实体执行节点
Destroy Self销毁自身实体执行节点
Is Valid检查实体是否有效纯节点
Get Entity Name获取实体名称纯节点
Set Entity Name设置实体名称执行节点
Find Entity By Name按名称查找实体纯节点
Find Entities By Tag按标签查找所有实体纯节点
Event BeginPlay
Self
Create Entity
Exec
Exec
Entity
Add Transform
Exec
Entity

读写组件属性:

节点说明类型
Get Component从实体获取指定类型组件纯节点
Has Component检查实体是否拥有指定组件纯节点
Add Component为实体添加组件执行节点
Remove Component从实体移除组件执行节点
Get Property获取组件属性值纯节点
Set Property设置组件属性值执行节点
Get Self
Entity
Get Component
Entity
Transform
Get Property
Target
x

控制蓝图执行流程:

节点说明
Branch条件分支(if/else)
Sequence按顺序执行多个分支
For Loop指定次数循环
For Each遍历数组元素
While Loop条件循环
Do Once仅执行一次
Flip Flop交替执行 A/B
Gate门控开关
Condition
Exec
Result
Branch
Exec
Cond
True
False
Print
Exec
Msg "是"
Print
Exec
Msg "否"
Event BeginPlay
For Loop
Exec
First 0
Last 10
Body
Index
Done
节点说明输出
Delay延迟执行指定秒数Exec
Get Delta Time获取帧间隔时间Float
Get Time获取运行总时间Float
Event BeginPlay
Delay
Exec
Duration 2.0
Done
Print
Exec
Msg "2秒后"
节点说明输入输出
Add加法A, BA + B
Subtract减法A, BA - B
Multiply乘法A, BA × B
Divide除法A, BA / B
Modulo取模A, BA % B
节点说明输入输出
Abs绝对值Value|Value|
Sqrt平方根Value√Value
Pow幂运算Base, ExpBase^Exp
Floor向下取整Value⌊Value⌋
Ceil向上取整Value⌈Value⌉
Round四舍五入Valueround(Value)
Clamp区间钳制Value, Min, Maxmin(max(V, Min), Max)
Lerp线性插值A, B, AlphaA + (B-A) × Alpha
Min取最小值A, Bmin(A, B)
Max取最大值A, Bmax(A, B)
节点说明
Sin正弦
Cos余弦
Tan正切
Asin反正弦
Acos反余弦
Atan反正切
Atan2二参数反正切
节点说明输入输出
Random随机浮点数 [0, 1)-Float
Random Range范围内随机数Min, MaxFloat
Random Int随机整数Min, MaxInt
节点说明输出
EqualA == BBoolean
Not EqualA != BBoolean
GreaterA > BBoolean
Greater Or EqualA >= BBoolean
LessA < BBoolean
Less Or EqualA <= BBoolean

Vector2、Fixed32、FixedVector2、Color 等高级数学节点由 @esengine/ecs-framework-math 模块提供。

详见:数学库蓝图节点

Random Range
Min 0
Max 100
Result
Clamp
Value
Min 20
Max 80
Result

蓝图定义的变量会自动生成 Get 和 Set 节点:

节点说明类型
Get <变量名>读取变量值纯节点
Set <变量名>设置变量值执行节点
节点说明
Print输出消息到控制台