嘿,我目前正在制作一个非常简单的 3D 无尽亚军游戏,我正在尝试让动画师在角色速度增加时增加浮动。 我正在使用一个非常简单的代码来使字符移动:
void Update () {
transform.Translate(Vector3.forward*speed)
;
然后我累了这样匹配动画师的漂浮物:
m_Anim.SetFloat("H_Speed", m_Rigidbody.velocity.z);
m_Anim指的是动画师,m_Rigidbody指的是物体 刚体
Transform.Translate
不会影响刚体的速度。这就像传送一样。因此,如果您想坚持使用Translate
则应根据以下行中的speed
设置动画速度:
transform.Translate(Vector3.forward*speed);
我没有声誉来添加评论以澄清您的问题(例如,为什么您需要在动画器中设置浮动? 但这是我的回复。 翻译中的速度将是固定速度,因此除非您有代码更改它,否则将始终保持不变。例如,按下向上箭头时增加它,按下向下箭头时增加它。
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--;}
}