参考動画
AnimatorのPlayを利用する
using UnityEngine;
public static class AnimationEx
{
//再生中のアニメーションを終わりまでスキップする
public static void SkipAnimation(Animator animator, int layer = 0)
{
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(layer);
animator.Play(stateInfo.fullPathHash, layer, 1); //再生時間が0~1の範囲なので強制的に1にする
}
}
このコードでは、現在再生されているアニメーションを、AnimatorのPlay関数を使ってスキップしています。Play関数の第3引数に1を設定することで、アニメーションの終わりまでスキップすることが出来ます。
使い方
using UnityEngine;
//スライムクラス
public class Slime : MonoBehaviour
{
private Animator _animator; //自分のAnimator管理用
private void Awake()
{
_animator = GetComponent<Animator>(); //自分自身についているAnimatorを取得
}
void Start()
{
}
void Update()
{
}
//スキップしたいタイミングで呼び出す
public void SkipAnimation()
{
AnimationEx.SkipAnimation(_animator); //スキップする
}
}
先ほど紹介した、AnimationEx.csをプロジェクトに追加して、スキップさせたいタイミングで、
AnimationEx.SkipAnimation(スキップ対象のAnimator); //スキップする
このコードを呼び出すだけです!