猿问

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

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

void Update () {

       transform.Translate(Vector3.forward*speed);

然后我厌倦了像这样匹配动画师浮动:

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

m_Anim 指的是 Animator,而 m_Rigidbody 指的是对象 Rigidbody


陪伴而非守候
浏览 137回答 2
2回答

元芳怎么了

我没有声誉添加评论以澄清您的问题(例如,为什么您需要在 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--;}}

慕盖茨4494581

Transform.Translate不影响刚体的速度。这就像传送。所以如果你想坚持使用Translate你应该根据speed这一行设置动画的速度:transform.Translate(Vector3.forward*speed);
随时随地看视频慕课网APP
我要回答