首页/ 第 9 章 · 动画系统/ 第 135 课
LESSON 135 · 动画系统

动画事件 Animation Event

动画事件已掌握。下一课学动画层。

⏱ 约 13 分钟📊 难度:入门🗂 第 9 章 · 动画系统📍 第 135 / 300 课
课程进度
135 / 300

🎯本节学习目标

  • 理解动画事件原理
  • 掌握添加动画事件
  • 实现脚步与攻击判定

🚀课程导读

“动画里脚落地的瞬间要响脚步声”“挥刀到一半要判定伤害”——动画事件在特定帧“叫”代码执行。

动画事件基础

在时间轴某点“按铃”。

  1. 动画事件(Animation Event)在动画播放到某帧时调用指定脚本方法。
  2. 【适用】脚步音效、攻击命中判定、粒子特效时机、音效同步。
  3. 【前提】动画片段能添加事件(Animation 窗口里)。
  4. 【方法要求】被调用的方法要挂在“播放该动画的对象”上,且是 public。
  5. 【方法签名】可以是无参方法,也可带 1 个参数(float/int/string/object/AnimationEvent)。
  6. 【注意事项】事件方法名拼错不会报错但不会触发,要核对。
  7. 【触发时机】事件在动画播放到对应时间点时触发。
💡
动画事件 = “定时呼叫”:动画替你计时,到点叫你的方法。

添加事件实战

给走路动画加脚步事件。

  1. 在 Animation 窗口选中“走路”动画片段,播放到“脚落地”的时间点。
  2. 【添加事件】在时间轴上方点【右键】→【Add Animation Event】(或点顶部的事件标记按钮)。
  3. 时间轴上出现一个白色菱形标记。
  4. 【绑定方法】选中菱形标记,在 Inspector 里:Function 下拉选择要调用的方法名(如 FootStep)。
  5. 参数(string/float/int/object)可填,如 “left”。
  6. 【写方法】在播放动画的角色脚本里写:
  7. public void FootStep(string foot) { Debug.Log("脚步:" + foot); AudioSource.PlayClipAtPoint(stepSound, transform.position); }
  8. 【测试】播放走路动画,脚落地瞬间输出“脚步”并播放音效。
  9. 【攻击判定】在挥刀动画的“击中帧”加事件调用 DealDamage()。
  10. 【多个事件】同一时间轴可加多个事件(音效+特效+判定)。
  11. 【注意】事件时间要精确,拖动菱形微调。
动画事件= 在关键帧放“闹钟”。攻击/脚步/投掷这些“时机敏感”逻辑全靠它。

常见错误与排查

错误:事件没触发?
原因:方法名不一致、方法没挂在该对象、或没点中事件标记
解决:核对 Function 拼写;确认方法所在脚本挂在播放动画的对象上;检查事件标记位置。

动手练习

课后小任务(做出来才算真的学会)

  • 给走路动画加脚步事件并绑定方法
  • 给攻击动画加一个伤害判定事件
  • (进阶)给事件传不同参数区分左右脚

本节小结

动画事件已掌握。下一课学动画层。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课动画混合树 Blend Tree