Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Unity 动画系统-AnimationEvent

$
0
0

两种添加事件的方式

第一种是属性面板方式:需注意的是,以前的版本点击添加事件后都弹出注册事件的窗口,现在添加事件后注册事件的窗口被放在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 发表于2017/8/21 16:35:15 原文链接
阅读:41 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>