Unity 动画系统(Animation,Animator,Timeline)

文章目录

  • 1. Animation
    • 1.1 创建Animation
    • 1.2 Animation 属性
  • 2. Animator
    • 2.1 Animator 组件
    • 2.2 Animation 状态
    • 2.3 状态控制参数
    • 2.4 代码中控制状态
  • 3. 代码控制动画的播放/暂停/继续播放

1. Animation

1.1 创建Animation

  1. 选中需要添加动画的物体,打开Animation面板
    Unity 动画系统(Animation,Animator,Timeline)_第1张图片
    Unity 动画系统(Animation,Animator,Timeline)_第2张图片
    点击Create创建动画
    Unity 动画系统(Animation,Animator,Timeline)_第3张图片

1.2 Animation 属性

Unity 动画系统(Animation,Animator,Timeline)_第4张图片

2. Animator

2.1 Animator 组件

当我们为物体创建 Animation 时。一个 Animator已经悄无声息地出现在了对应的GameObject上
Unity 动画系统(Animation,Animator,Timeline)_第5张图片

2.2 Animation 状态

每个Animator Controller都会自带三个状态:Any State, Entry 和 Exit。

  1. Any State 状态
    表示任意状态的特殊状态。例如我们如果希望角色在任何状态下都有可能切换到死亡状态,那么Any State就可以帮我们做到。当你发现某个状态可以从任何状态以相同的条件跳转到时,那么你就可以用Any State来简化过渡关系。
  2. Entry 状态
    表示状态机的入口状态。默认情况下Animator组件会播放哪个动画呢由Entry来决定的。
    Unity 动画系统(Animation,Animator,Timeline)_第6张图片
    可以任意一个状态上通过 鼠标右键->Set as Layer Default State更改默认状态。
    Unity 动画系统(Animation,Animator,Timeline)_第7张图片
  3. Exit 状态(用时百度)

2.3 状态控制参数

添加状态参数:
Unity 动画系统(Animation,Animator,Timeline)_第8张图片

点击状态间的连线,在Inspecter窗口中可以进行设置,在Conditions栏下可以添加条件,如下图表示当参数
animPara为0时会执行这个动画Any State到New State的过渡
Unity 动画系统(Animation,Animator,Timeline)_第9张图片

2.4 代码中控制状态

Animator ator = go1.GetComponent<Animator>();
ator.SetInteger("animPara", 1);

3. 代码控制动画的播放/暂停/继续播放

  1. 重新播放
Animator.Play(state, layer, normalizedTime)	
// 比如有一个叫“hit”的动画,在layer 0层中
animator.Play("hit", 0, 0f);
  1. 暂停和继续播放

Animator

// 播放
animator.Play("ani_name");
// 暂停
animator.speed = 0;
// 继续播放
animator.speed = 1;

Animation

// 播放
animition.Play("ani_name");
// 暂停
animition["ani_name"].speed = 0;
// 继续播放
animition["ani_name"].speed = 1;

你可能感兴趣的:(Unity,unity,游戏引擎,动画)