Unity的动画重新播放/暂停/继续播放(Animation/Animator)解决动画像播电影一样上一步下一步的播放问题


一. 重新播放

Animator.Play(state, layer, normalizedTime)

normalizedTime值得范围是0-1,当normalizedTime为0时就可以做到重播的效果

通过设置normalizedTime的值可以做到让动画从某一个位置播放(解决动画上一步下一步的播放问题)

layer是从0开始的
比如有一个叫“hit”的动画,在layer 0层中

animator.Play("hit", 0, 0f);

二. 暂停和继续播放

1. Animotor

// 播放
animator.Play("ani_name");
//animator.SetBool(isPlay,true)//切换动画状态机,的方式播放动画
// 暂停 animator.speed = 0; // 继续播放 animator.speed = 1;

2. Animation

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