12.1 动画系统概述
Unity 的动画系统(Mecanim)包含三大核心组件:
| 组件 | 作用 |
|---|---|
| Animation Clip | 单个动画片段(行走、跳跃、攻击等) |
| Animator Controller | 动画状态机,控制片段切换 |
| Animator | 附加在 GameObject 上,驱动动画播放 |
12.2 创建动画
创建 Animation Clip
- 选中要添加动画的 GameObject
- 打开 Animation 面板(Window → Animation → Animation,或 Ctrl+6)
- 点击 “Create” 按钮,保存
.anim文件 - 添加属性曲线(Position、Rotation、Scale、自定义属性)
- 在时间轴上添加关键帧,调整属性值
录制动画
Animation 面板的录制按钮(红色圆点)让你可以:
- 在 Scene 视图中移动/旋转/缩放物体
- Inspector 修改的属性自动记录关键帧
- 再次点击停止录制
12.3 Animator Controller 与状态机
创建 Animator Controller
Project 面板 → Create → Animator Controller,双击打开 Animator 窗口。
核心概念
| 概念 | 说明 |
|---|---|
| State(状态) | 一个动画片段(或混合树) |
| Transition(过渡) | 状态之间的切换条件 |
| Parameter(参数) | Float / Int / Bool / Trigger 类型控制变量 |
| Any State | 任何状态均可跳转到该状态 |
| Entry | 进入状态机的初始状态 |
| Exit | 退出状态机 |
基本状态机设置
1 | Entry → Idle |
1 | public class PlayerAnim : MonoBehaviour |
12.4 混合树(Blend Tree)
混合树让多个动画平滑过渡混合。
1D 混合树
根据一个参数混合多个动画:
- Speed 参数:Idle(0) → Walk(0.5) → Run(1.0)
2D 混合树
根据两个参数混合,适合方向运动:
- Horizontal + Vertical:前/后/左/右/斜向行走
创建混合树
- 在 Animator 中右键 → Create State → From New Blend Tree
- 双击进入 Blend Tree
- 设置 Blend Type(1D / 2D Simple Directional 等)
- 添加 Motion(动画片段)并设置阈值
12.5 动画事件
在动画的特定时间点调用脚本方法。
添加事件
- 在 Animation 面板中选择目标帧
- 右键 → Add Animation Event
- 设置调用的函数名和参数
1 | public class AttackAnimEvents : MonoBehaviour |
12.6 本章小结
- Animation Clip 记录属性变化的关键帧
- Animator Controller 通过状态机控制动画切换
- Parameter 控制状态过渡条件(Float/Int/Bool/Trigger)
- Blend Tree 实现多动画平滑混合
- 动画事件在特定帧调用脚本函数
- 角色的动画系统通常与输入控制联动
练习题
- 为一个 Cube 创建旋转动画(绕 Y 轴 360 度循环)
- 制作角色的 Idle → Walk → Run 状态机(用 Speed 参数控制)
- 在动画事件中添加脚步声播放
- 使用 Blend Tree 混合角色的前后左右行走动画