当前位置:   article > 正文

Unity中的Animation和Animator组件的使用——(播放、暂停、倒放、片段长度等)_unity动画倒放

unity动画倒放

在做项目过程中遇到好几个只有Animation组件,没有Animator组件的物体,因为之前在代码中都是用Animator控制的,第一次遇到这种有点懵,研究了一下两者的区别和使用,简单地总结了一下如何分别用代码控制动画。

(自用总结,部分图片出处有下标)

先看一下两个组件的区别

Animation:

Animator:

动画控制器页面:

两者代码区分:

操作

Animation

Animator

播放

Play(["clipName"])

不传参数则播放默认动画

Clip必须已经添加到Animations列表里

Play("stateName"/stateNameHash)

参数为状态机中片段的状态名(与clipName不一定一致)

暂停

Animation ani = xxx;

AnimationState state = ani["clipName"];

state.speed = 0;

Animator ator = xxxx;

ator.speed = 0;

继续播放

state.speed = 1;

ator.speed = 1;

倒放

state.speed = -1;//速度设为负值

state.normalizedTime = 1;//设为1倒放开始点

ator.speed = -1;//现在失效,需要通过设置参数

ator.SetFloat(speed,-1);

获取片段播放时间

ani.GetClip("clipName").length

 AnimationClip [] animationClip = ator.runtimeAnimatorController.animationClips;

 foreach (var item in animationClip)

 {

if (item.name.Equals("stateName"))

{        

return item.length;

}

}

判断动画是否播放结束

if(state.normalizedTime>=1){}

//normalizedTime值为0(开始)~1(结束),倒放相反

或ani.isPlaying判断

AnimatorStateInfo info = ator.GetCurrentAnimatorStateInfo(0);

if(info.normalizedTime>=1){}

//normalizedTime值为0~1,0开始,1结束,倒放相反

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号