//
得到模型动画
//
obj = GameObject.Find("man");
//
得到动画的播放长度;旧版本可以直接获取 obj.animation.animation[ANIM_NAME].length,5.X之后的应该都需要获取Animation组件
m_Animation = obj.GetComponent<Animation>
();
animLegth
=
m_Animation[ANIM_NAME].length;
//
播放动画 : 1
m_Animation.Play();
//
播放默认动画
m_Animation.Play(
"
xx
"
);
//
播放xx动画,默认是停止同一层的其他动画;作用同m_Animation.Play("xx",PlayMode.StopSamLayer);
m_Animation.Play(
"
xx
"
,PlayMode.StopAll);
//
播放xx动画,所有当前播放的动画都停止
//
2:在一定时间内淡入名称为animation的动画
m_Animation.CrossFade(
string
:animation);
m_Animation.CrossFade(
string
:animation,
float
:time);
m_Animation.CrossFade(
string
:animation,
float
:time,PlayMode:playMode);
//
判断动画是否播放完毕;normalizedTime: 范围0~1, 0是动作开始,1是动作结束;但是对于Animation好似没用,Animator是可以的,建议可以尝试下,判断normalizedTime的值是否处于0.8~0.9尝试,或者其他定时/委托
if
(m_Animation.IsPlaying(
"
xx
"
) && m_Animation[
"
xx
"
].normalizedTime >=
1
)
//
倒放动画
m_Animation[
"
xx
"
].speed = -1f*
设置的动画播放速度;
//加速可以直接在正值的基础上乘N倍 栗子:
m_Animation["xx"].speed = 1f*N;
//停止播放动画 m_Animation.Stop(); m_Animation.Stop("xx");
注:一个要格外注意的点,一旦用了倒放动画,播放完毕之后,要恢复;不然动画只播放一遍;
不积跬步,无以至千里;不积小流,无以成江海。