在使用高版本unity的时候,自己制作动画时,默认添加Animator(新动画)组件,若是一般的单个动画正常播放,新老动画差不离,就业没有在意。后期制作过程中出现倒序播放的要求,找了好久才找到,原来新老动画倒序播放还是有些区别的!(终究还是个Low瓢\(^o^)/~)一起来看看吧!
一、老动画Animation
设置指定动画的起始时间,播放速度,再执行播放方法即可
正序:
void PlayAnimation() {Animation _animation = this.GetComponent<Animation>();string animClip = "_main_window";_animation[animClip].time = 0;_animation[animClip].speed = 1f;_animation.Play(animClip);}
倒序:
void RevertAnimation() {Animation _animation = this.GetComponent<Animation>();string animClip = "_main_window";_animation[animClip].time = _animation[animClip].clip.length;_animation[animClip].speed = -1f;_animation.Play(animClip);}
二、新动画Animator
按理来说也就是播放速度speed设置成1或-1就能实现,可倒序时需要先运行Animator.StartPlayback()方法,不然speed会变为0,具体原因没找到,按字面理解大概是允许在动画播放状态下改变速度(不求甚解),新动画不用设置播放起始位置,具体代码如下:
正序:
void PlayAnimator(){Animator ani = this.GetComponent<Animator>();ani.speed = 1f;ani.Play("_play_window_ani",0,1);//ani.SetFloat("_play_window_ani");}
倒序:
void RevertAnimator(){Animator ani = this.GetComponent<Animator>();ani.StartPlayback();ani.speed = -1f;ani.Play("_play_window_ani",0,1);}
这也算是给自己做个笔记,错误的地方还望指正,感激不尽!