嘿,我目前正在制作一个非常简单的3D无尽的转轮游戏,当角色速度增加时,我试图使动画制作者的浮动增加。 我正在使用一个非常简单的代码来使角色移动:
void Update () {
transform.Translate(Vector3.forward*speed)
;
然后我很疲倦地匹配动画动画浮动,就像这样:
m_Anim.SetFloat("H_Speed", m_Rigidbody.velocity.z);
m_Anim引用了Animator,而m_Rigidbody引用了Rigidbody
答案 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--;}
}