根据对象的水平移动速度设置动画浮动

时间:2018-08-14 11:59:01

标签: c# unity3d animation velocity animator

嘿,我目前正在制作一个非常简单的3D无尽的转轮游戏,当角色速度增加时,我试图使动画制作者的浮动增加。 我正在使用一个非常简单的代码来使角色移动:

void Update () { transform.Translate(Vector3.forward*speed);

然后我很疲倦地匹配动画动画浮动,就像这样:

m_Anim.SetFloat("H_Speed", m_Rigidbody.velocity.z);

m_Anim引用了Animator,而m_Rigidbody引用了Rigidbody

2 个答案:

答案 0 :(得分:0)

Transform.Translate不会影响刚体的速度。就像隐形传态。因此,如果您要坚持使用Translate,则应从此行根据speed设置动画的速度:

transform.Translate(Vector3.forward*speed);

答案 1 :(得分:0)

我没有声誉来添加注释以澄清您的问题(例如,为什么需要在Animator中设置浮点数?),但这是我的答复。翻译中的速度将是固定速度,因此除非您有代码对其进行更改,否则它将始终保持不变。例如,当按下向上箭头时增加该值,而按下向下箭头时则减小。

void Update () {
   transform.Translate(Vector3.forward*speed*Time.deltaTime);
   m_Anim.SetFloat("H_Speed", speed);
   if (Input.GetKeyDown(KeyCode.UpArrow)){ 
       speed++;}
   if (Input.GetKeyDown(KeyCode.DownArrow)){ 
       speed--;}
}