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();

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();

        AddAnimationEvent(animator, "Idle", evt);

    }


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

    {

        if(animator == null) animator = GetComponent();

        AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;

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

        {

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

            {

                clips[i].AddEvent(evt);

            }

        }

    }

你可能感兴趣的:(Unity3D 代码动画添加事件)