Agent Skills
返回列表
💻

Unity 动画系统

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/unity-animation-sh-xuegy4。

技能介绍

要解决什么问题

角色动画往往不是「播一段 clip」就结束:idle、walk、run 要平滑衔接,跳跃和受击要即时响应,上半身瞄准还不能打断下半身 locomotion。Unity 的 Animator / Mecanim 用状态机、参数和混合树把这些关系显式化;若还在脚本里直接切状态或混用 Root Motion 与 transform 位移,很容易出现滑步、触发器「粘住」、过渡拖泥带水等问题。

技能如何组织工作流

本技能面向 Unity 6 (6000.0 LTS),围绕控制器资产与脚本协作:

  • 在模型上挂 Animator 并指定 *.controller;Humanoid 骨骼需设 Humanoid 以启用 Avatar、重定向与 IK。
  • 在控制器上定义 Float / Bool / Int / Trigger 等参数,用过渡条件驱动状态,而不是在代码里硬切状态。
  • 脚本侧只调用 SetFloat、SetBool、SetInteger、SetTrigger;连续运动优先用 Blend Tree(例如用 Speed 驱动 idle↔walk↔run)。
  • 需要上半身叠加时,用 Layer、Avatar Mask 与 layerWeight 区分 Override / Additive。
  • Play 模式下在 Animator 窗口核对:当前状态高亮、参数实时变化,便于判断哪条过渡生效。

文中还覆盖常见模式(噪声输入平滑、直接 CrossFade、等待当前状态结束)以及 OnAnimatorIK、IK Pass 等人形 IK 前提。

适用边界

  • 不适合:纯 UI 淡入淡出、位置插值等非骨骼补间——更适合协程或 tween(可对照 unity-csharp-scripting)。
  • Timeline 过场与 2D 精灵帧 动画是另一条线(2D 仍可能用 Animator,但关键帧语义不同)。
  • 注意 SetTrigger 未被消费会延迟触发;参数名拼错会静默失败,建议缓存 Animator.StringToHash。Has Exit Time 会让响应变慢;Root Motion 与脚本位移二选一。

使用场景

  • 第三人称角色已导入 Humanoid 模型,需要用 Float 参数把 idle、walk、run 接到同一套 Blend Tree 上
  • 上半身举枪瞄准时要叠加在跑步动画上,需要配置 Layer、Avatar Mask 和 layerWeight
  • 跳跃或受击过渡感觉慢半拍,需要关掉 Has Exit Time 并用 Trigger/Bool 驱动即时切换
  • 脚底在斜坡上悬空或滑步,需要在 Humanoid 上启用 IK Pass 并在 OnAnimatorIK 里调脚部 IK

适合人员

  • 负责角色移动脚本、需要把速度、着地等逻辑写成 Animator 参数的 Unity Gameplay 程序员
  • 在项目中维护 *.controller 与过渡条件、要为 locomotion 搭混合树的技术向动画师
  • 独立游戏开发者要在 Root Motion 与代码驱动位移之间定方案并消除滑步的制作者
  • 接手已有 Mecanim 资源、要排查 SetTrigger 粘住或参数名拼错导致动画不响应的工程师