为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
陪伴而非守候 2021-11-28 15:58:37
嘿,我目前正在制作一个非常简单的 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--;}

}


查看完整回答
反对 回复 2021-11-28
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

Transform.Translate不影响刚体的速度。这就像传送。所以如果你想坚持使用Translate你应该根据speed这一行设置动画的速度:

transform.Translate(Vector3.forward*speed);


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信