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를 추가해주시면 됩니다.