ちょっとした動作確認の時などに用意してあるとちゃちゃっと設定できて便利なのですが、
いざ実装してみようとした所ちゃちゃっと終わらなかったので、備忘録として残しておきます。
AnimationFinishedEventTrigger.cs
using UnityEngine;
using UnityEngine.Events;
[RequireComponent(typeof(Animation))]
public class AnimationFinishedEventTrigger : MonoBehaviour
{
[SerializeField] private UnityEvent onFinished = null;
Animation selfAnimation;
private void Start()
{
selfAnimation = GetComponent<Animation>();
var animationEvent = new AnimationEvent
{
functionName = "OnFinished",
time = selfAnimation.clip.length
};
selfAnimation.clip.AddEvent(animationEvent);
}
public void OnFinished()
{
if (onFinished != null) onFinished.Invoke();
}
}
使い方
上記のコンポーネントをAnimationが付いているGameObjectに追加して、
呼び出したいメソッドをインスペクタから設定するだけです。
※uGUIのButton等と同じ要領