嘿,我目前正在制作一個非常簡單的 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 關注
- 171 瀏覽
添加回答
舉報
0/150
提交
取消