Unity 动画系统-AnimationEvent

2020-10-22 10:56发布

两种添加事件的方式

第一种是属性面板方式:需注意的是,以前的版本点击添加事件后都弹出注册事件的窗口,现在添加事件后注册事件的窗口被放在Inspector下,,,

第二种则是代码实现了:相对比而言,属性面板能更方便、准确的控制在什么时间出发注册的事件,都可传递0个或者1个参数,只是实现的形式不同,没有本质的区别

代码实现注册动画时间的参考代码如下:

public class AnimationEventDemo : MonoBehaviour {

 

    Animation ani;    //声明Animation动画

    AnimationClip aniclip;     //声明aniclip动画剪辑

 

// Use this for initialization

void Start () {

        ani = GetComponent<Animation>();   //获取组件

 

        aniclip = ani.GetClip("walk");     //获取walk的动画剪辑,并赋值给aniclip

 

        //创建一个AnimationEvent 对象

        AnimationEvent anievent = new AnimationEvent();

 

        anievent.functionName = "Show";   //注册方法到事件

 

        anievent.time = aniclip.length * 0.9f;  //设置在动作中触发事件的时间

 

        anievent.intParameter = 5;        //传方法中相应的参数

 

        aniclip.AddEvent(anievent);       //将设置好的事件添加到动画

 

}

// Update is called once per frame

void Update () {

        if (Input.GetKeyDown(KeyCode.Q))

        {

            ani.Play("walk");  //播放walk动作

        }

}

 

       public void Show(int i)

       {

           Debug.Log("调用注册方法show参数是:"+i);

       }

}




作者:Czhenya

链接:https://czhenya.blog.csdn.net/article/details/77451338

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。