在使用高版本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);
}
这也算是给自己做个笔记,错误的地方还望指正,感激不尽!
来源:CSDN
作者:Whislee
链接:https://blog.csdn.net/Whislee/article/details/103709267