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

1. Animation

1.1 创建Animation

  1. 选中需要添加动画的物体,打开Animation面板
    在这里插入图片描述
    在这里插入图片描述
    点击Create创建动画
    在这里插入图片描述

1.2 Animation 属性

在这里插入图片描述

2. Animator

2.1 Animator 组件

当我们为物体创建 Animation 时。一个 Animator已经悄无声息地出现在了对应的GameObject上
在这里插入图片描述

2.2 Animation 状态

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

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

2.3 状态控制参数

添加状态参数:
在这里插入图片描述

点击状态间的连线,在Inspecter窗口中可以进行设置,在Conditions栏下可以添加条件,如下图表示当参数
animPara为0时会执行这个动画Any State到New State的过渡
在这里插入图片描述

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;

猜你喜欢

转载自blog.csdn.net/weixin_45136016/article/details/128199063