using UnityEngine;
public class Test : MonoBehaviour
{
#region --变量定义
private Animator animator;
private AnimationClip[] clips;
#endregion
#region --系统函数
private void Start()
{
animator = this.GetComponent<Animator>();
clips = animator.runtimeAnimatorController.animationClips;
AnimationClip _clip = clips[0];
AddAnimationEvent(animator, _clip.name, "StartEvent", 0);
AddAnimationEvent(animator, _clip.name, "HalfEvent", _clip.length * 0.5f);
AddAnimationEvent(animator, _clip.name, "EndEvent", _clip.length);
}
private void OnDestroy()
{
CleanAllEvent();
}
#endregion
#region --自定义函数
private void StartEvent()
{
Debug.Log("开始播放动画");
}
private void HalfEvent()
{
Debug.Log("动画播放了一半");
}
private void EndEvent()
{
Debug.Log("播放动画完毕");
}
/// <su
Unity动画系统Animator动态添加事件
最新推荐文章于 2024-08-03 20:31:03 发布
这个博客详细介绍了如何在Unity中为动画片段添加和清除事件。通过`AddAnimationEvent`函数,可以在特定时间点触发自定义的StartEvent、HalfEvent和EndEvent函数,用于在动画播放的不同阶段打印日志。同时,`CleanAllEvent`函数用于清除所有已添加的动画事件,确保资源的释放。这对于实现与动画交互的游戏逻辑至关重要。
摘要由CSDN通过智能技术生成