嘿,我目前正在制作一个非常简单的 3D 无尽跑酷游戏,我试图在角色速度增加时使动画师浮动增加。我正在使用一个非常简单的代码来使角色移动:void Update () { transform.Translate(Vector3.forward*speed);然后我厌倦了像这样匹配动画师浮动:m_Anim.SetFloat("H_Speed", m_Rigidbody.velocity.z);m_Anim 指的是 Animator,而 m_Rigidbody 指的是对象 Rigidbody
2 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
我没有声誉添加评论以澄清您的问题(例如,为什么您需要在 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
TA贡献1850条经验 获得超11个赞
Transform.Translate
不影响刚体的速度。这就像传送。所以如果你想坚持使用Translate
你应该根据speed
这一行设置动画的速度:
transform.Translate(Vector3.forward*speed);
- 2 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消