Unity动画系统Animator动态添加事件

这个博客详细介绍了如何在Unity中为动画片段添加和清除事件。通过`AddAnimationEvent`函数,可以在特定时间点触发自定义的StartEvent、HalfEvent和EndEvent函数,用于在动画播放的不同阶段打印日志。同时,`CleanAllEvent`函数用于清除所有已添加的动画事件,确保资源的释放。这对于实现与动画交互的游戏逻辑至关重要。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值