用途:指导在 Unity 中实现高级动画,覆盖代码与 Animator 集成、IK、Root Motion、Animation Rigging、Timeline、Playables API 及高级混合树。它不止于配置 Animator Controller,还提供生产级代码模式,用于从代码驱动动画、让玩法逻辑与关键帧同步,并使用 IK、Playables API、Timeline 等高级系统。
主要能力:Animator 与代码集成(缓存哈希、参数、事件);Animation Events 同步逻辑与动画;StateMachineBehaviour 状态逻辑;Animator Layers 局部动画;Blend Trees 移动混合;IK、Root Motion、Timeline、Playables API、Animation Rigging。
使用方式:先按决策树选择动画系统,再配置 Animator Controller(状态、过渡、参数),然后与代码集成(缓存哈希、参数、事件),最后用 IK、高级混合、层细化。示例:用 Animator.StringToHash 缓存参数,用 SetFloat 带阻尼平滑过渡,用 SetLayerWeight 控制层权重,用 Animation Events 触发脚步与攻击判定。
适用场景:玩家或敌人状态机(idle、run、attack)、过场动画、运行时动态混合、IK 交互(注视、抓取)、大量实体动画(DOTS Animation)。
限制与规则:始终缓存哈希,避免在 Update 中查找字符串;用 Animation Events 同步逻辑而非手动计时器;用层处理局部动画;用带阻尼的 SetFloat 平滑过渡;在 OnDestroy 中销毁 PlayableGraph 防止内存泄漏。不要在 Update 中 GetComponent<Animator>();除纯逻辑状态机外过渡时长不要为 0;Root Motion 启用时不要手动改 transform.position;无理由不要用 Play() 或 CrossFade()。新项目优先 Animation Rigging 而非 OnAnimatorIK()。前置条件:已配置基础状态与过渡的 Animator Controller、已导入动画剪辑;IK 需 Animation Rigging 包,过场需 Timeline 包。具体安装命令与价格暂未提供。