Unity アニメーション終了を待つ
AnimationControllerで entry —(trigger hoge)-> Hoge のとき
using System.Collections;
using UnityEngine;
[RequireComponent(typeof(Animator))]
public class Actor : MonoBehaviour {
private Animator _animator;
private async void Start() {
_animator = GetComponent<Animator>();
// require 'UniTask' for awaiting coroutines.
await Action();
}
private IEnumerator Action() {
_animator.SetTrigger("hoge");
yield return WaitAnimationEnd("Hoge");
}
//アニメーション終了を判定するコルーチン
private IEnumerator WaitAnimationEnd(string animatorName) {
var finish = false;
while (!finish) {
var nowState = _animator.GetCurrentAnimatorStateInfo(0);
if (nowState.IsName(animatorName)) {
finish = true;
}
else {
yield return new WaitForSeconds(0.1f);
}
}
}
}