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

动画参数 Parameters

动画参数已掌握。下一课学动画过渡 Transitions。

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

🎯本节学习目标

  • 掌握四种参数类型
  • 掌握代码设置参数
  • 用参数控制切换

🚀课程导读

状态之间“凭什么切”?凭参数。代码往参数里写值,状态机看值决定切不切。本课讲透参数。

四种参数类型

按数据类型选。

  1. 在 Animator 窗口左侧【Parameters】面板点【+】添加参数。
  2. 【Float 浮点】连续数值:速度、血量。例:Speed。
  3. 【Int 整数】离散数值:等级、阶段。例:State。
  4. 【Bool 布尔】开关:是否移动、是否死亡。例:IsWalking。
  5. 【Trigger 触发器】一次性“脉冲”:按一下就触发然后自动复位。例:Attack、Jump。
  6. 【用途】Float/Bool 用于“持续性”切换;Trigger 用于“一次性”动作。
  7. 【参数命名】与代码一致,小驼峰或大驼峰都行,但全项目统一。
  8. 【参数面板】每个参数可设默认值。
💡
参数选择口诀:连续值用 Float、开关用 Bool、一次性动作用 Trigger。

代码设置参数

Set 系列方法。

  1. 在脚本里先拿 Animator:private Animator anim; void Awake() { anim = GetComponent<Animator>(); }
  2. 【SetFloat】anim.SetFloat("Speed", 5f);
  3. 【SetInt】anim.SetInt("State", 1);
  4. 【SetBool】anim.SetBool("IsWalking", true);
  5. 【SetTrigger】anim.SetTrigger("Attack"); 触发后自动复位(也可 ResetTrigger 手动复位)。
  6. 【读参数】float s = anim.GetFloat("Speed");
  7. 【平滑 Float】anim.SetFloat("Speed", value, 0.1f, Time.deltaTime); 带阻尼平滑(走路→跑步渐变)。
  8. 【参数名匹配】代码里的名字必须与 Animator 面板完全一致,否则无效(写错不报错、动画不动)。
  9. 【实战】移动时 SetBool("IsWalking", true)、停下 false;按攻击键 SetTrigger("Attack")。
  10. 【注意】SetTrigger 在“目标状态没连对应过渡”时无效果。
参数名写错是“动画不动”的头号原因:不报错但没反应,务必核对拼写。

常见错误与排查

错误:SetTrigger 没反应?
原因:参数名不一致,或过渡条件没用该 Trigger
解决:核对参数名;确认有“触发该 Trigger”的过渡从当前状态出发。

动手练习

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

  • 添加 Float/Bool/Trigger 三类参数
  • 用代码 SetFloat 控制 Speed 切换走路/跑步
  • 用 SetTrigger 触发攻击动画

本节小结

动画参数已掌握。下一课学动画过渡 Transitions。

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

← 上一课动画状态机 Animator State Machine