유니티 AnimationEvent란? #애니메이션 특정 시점에 스크립트 함수 호출하기

AnimationEvent란?

AnimationEvent는 애니메이션 시스템에서 애니메이션의 특정 시점에 스크립트 함수 호출을 트리거하는 데 사용됩니다. AnimationEvent를 통해 애니메이션의 특정 프레임에서 스크립트 함수가 실행되도록 할 수 있습니다.

 

AnimationEvent 추가

 

AnimationEvent는 스크립트상으로 작성할 수도 있지만 위와 같이 설정하고 사용할 수도 있습니다.

 


AnimationEvent (스크립트)사용 방법

using UnityEngine;

public class AnimationManager : MonoBehaviour
{
    public Animator animator;
    public AnimationClip animationClip;

    private void Start()
    {
        AddAnimationEvent();
    }

    private void AddAnimationEvent()
    {
        if (animator == null || animationClip == null)
        {
            Debug.LogError("Animator or AnimationClip is not assigned.");
            return;
        }

        AnimationEvent animationEvent = new AnimationEvent();
        animationEvent.time = 1.0f; // 애니메이션에서 이벤트를 발생시킬 시간 (초 단위)
        animationEvent.functionName = "TriggerFunction"; // 호출할 함수 이름

        animationClip.AddEvent(animationEvent);
    }

    private void TriggerFunction()
    {
        Debug.Log("Animation Event Triggered!");
    }
}

 

Animation Event를 추가할 때 위 방식 혹은 아래 방식을 사용할 수 있습니다.

AnimationEvent animationEvent = new AnimationEvent
{
         time = clip.length,
         functionName = "TriggerFunction"
};
clip.AddEvent(animationEvent);

 

AnimationEvent를 사용할 때 호출 될 시간과 사용할 함수이름을 작성하고 AddEvent로 해당 AnimationEvent를 추가해주시면 됩니다.