unity 动画原动画返回_Unity 5.6.1 动态添加Animation动画事件回调

本文介绍了在Unity 5.6.1中如何动态地为Animation组件添加动画事件回调。通过`AddAnimationEvent`方法,可以指定动画片段、事件位置和回调方法。示例代码展示了如何在`EvnetPlace.Start`和`EvnetPlace.End`处设置回调,并提供了两个具体的回调函数示例:`Peel_End`和`TrimThread_End`。回调方法需放在带有动画的GameObject上以确保能正确触发。
摘要由CSDN通过智能技术生成

Unity 5.6.1 动态添加Animation动画事件回调

///

/// 添加动画事件回调

///

/// 动画

/// clip名字

/// 自定义事件类型

/// 回调方法

private void AddAnimationEvent(Animation animation, string clipName, EvnetPlace evnetPlace, string evnetFunction)

{

//clip = animator.GetCurrentAnimatorClipInfo(0)[0].clip;

clip = animation.GetClip(clipName);

//创建动画事件

AnimationEvent animationEvent = new AnimationEvent();

//设置事件回掉函数名字

animationEvent.functionName = evnetFunction;

//传入参数

//animationEvent.objectReferenceParameter = target;

//设置触发帧

if (evnetPlace == EvnetPlace.Start)

animationEvent.time = 0f;

else if (evnetPlace == EvnetPlace.End)

animationEvent.time = clip.length;

//注册事件

clip.AddEvent(animationEvent);

}

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class AnimEventChh : MonoBehaviour {

public ModuleGameCenter moduleGameCenter;

#region CrystalHeadPractical

private void Peel_End()

{

moduleGameCenter.Peel_End();

}

private void TrimThread_End()

{

moduleGameCenter.TrimThread_End();

}

#endregion

}

这个AnimEventChh脚本要放在带动画的物体上 要不找不到回调方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值