EventGraph 与 Function 编辑
EventGraph 和 Function 可辅助 AnimGraph,实现更灵活的动画输出控制。
EventGraph初始状态
默认 EntryNode:OnStart、OnUpdate、OnLateUpdate
EventGraph 包含三个默认 EntryNode,作为执行流的起点:
初始三种EntryNode
-
OnStart:在播放开始的首帧前执行,整个生命周期仅执行一次,以下是OnStart示例
OnStart示例
-
OnUpdate:每帧执行,在 Internal Animation Update 之前触发
-
OnLateUpdate:每帧执行,执行顺序遵循 Unity 的 LateUpdate Order 规则

OnAnimationGraphMove 节点
当连接执行逻辑时,该节点会每帧触发后续执行图。您可在执行图中处理动画系统生成的位移(deltaPosition)和旋转(deltaRotation),实现自定义 RootMotion。其功能与 OnAnimatorMove 类似。
注意事项
- 当EventGraph中存在OnAnimationGraphMove节点时,动画系统将不会在内部修改游戏对象的RootMotion,而是由该节点的执行图逻辑控制。
- 当存在多个OnAnimationGraphMove节点时,EventGraph会按照节点添加的顺序执行各个节点连接的执行图。
创建与使用
- 通过搜索栏创建:MessageEntry -> OnAnimationGraphMove


- 使用示例:
CustomEvent(自定义事件)
创建与配置
- 通过搜索栏创建:Event -> CustomEvent




- 配置参数:修改名称和类型(如 float 需搜索 Single)


以下是自定义事件的示例,由C#脚本触发的,自定义参数为一个String类型参数
CustomEvent示例
触发机制
在脚本中通过 AnimGraphManager.ActivateEvent(string name, List<Object> params) 触发:
- 参数个数和类型必须严格匹配
- 实际执行发生在 EventGraph 完成 OnUpdate 之后
AnimationEvent(动画事件)
专为 AnimationClip 事件定制:

- 节点样式(固定输出 float/int/string/object):


以下是AnimationEvent(名为OnLand)的示例:
Animation的OnLand事件节点示例
注意事项
事件名称必须与 AnimationClip 的 Event 名称完全一致:
Function 函数管理
函数可实现 EventGraph 逻辑复用:
创建与管理


函数结构
双击函数进入编辑界面,包含固定 Entry 和 Return 节点:
参数配置
- 在 Inspector 中编辑 Entry/Return 节点参数:



- 示例:添加 string 类型参数 “name” 后节点的样式如下:


函数调用
在搜索栏找到 Function 条目,创建对应函数节点:
function在同一名字下可以重载不同的形参,假如修改形参导致和别的函数冲突,会自动把函数名更改为不冲突的形式。
Function是可以多重调用的,以下是Function的示例,OnLateUpdate调用CameraRotation,然后CameraRotation调用ClampAngle:
函数ClampAngle的连接示例
CameraRotation调用ClampAngle的部分
OnLateUpdate调用CameraRotation实例