Unity3D 代码动画添加事件

Unity3D 代码动画添加事件


AnimationEvent类

添加事件的方法:代码添加

目的:

  当某动画的Clip播放0.5秒后,触发自定义事件PrintEvent();

内容:

  创建事件,并设置好传递的参数;事件与Clip绑定;自定义Event函数;

步骤:

1.创建一个动画事件

AnimationEvent evt = new AnimationEvent();

evt.functionName = "PrintEvent";

evt.intParameter = 12345;

evt.time = 1.3f;

2.具体的事件函数,自己写的函数

public void PrintEvent ( int i )

{

  print("PrintEvent: " + i ); //自定义

}

3.具体绑定,一般绑在AnimationClip上

Animator  anim;

AnimationClip clip;

anim = GetComponent<Animator>();

clip = anim.runtimeAnimatorController.animationClips[0];

clip.AddEvent(evt);

示例代码:

void Start()

    {

        AnimationEvent evt = new AnimationEvent();

        evt.functionName = "PrintEvent";

        evt.intParameter = 12345;

        evt.time = 1.3f;

        Animator animator = GetComponent<Animator>();

        AddAnimationEvent(animator, "Idle", evt);

    }


void AddAnimationEvent(Animator animator, string aniName, AnimationEvent evt)

    {

        if(animator == null) animator = GetComponent<Animator>();

        AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;

        for (int i = 0; i < clips.Length; i++)

        {

            if (clips[i].name.Equals(aniName))

            {

                clips[i].AddEvent(evt);

            }

        }

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容