2015-07-19 85 views
0

我似乎無法讓我的剛體左右移動。代碼看起來很好,非常類似於其他人發佈的內容!左右移動剛體

調試語句正在調用,但我的角色沒有左右移動。

感謝您的幫助。

public float speed = 4.0f; 
void Update() 
    { 
     float moveDirection = Input.GetAxis("Horizontal"); 

     if (Input.GetKeyDown("d")) 
     { 
      Debug.Log("pressed d"); 
      rb.AddForce(new Vector2(Time.deltaTime * speed * moveDirection, 0), ForceMode2D.Force); 
     } 

回答

2

我剛剛使用3D環境對其進行了測試,但這應該不重要。因此,畢竟我非常肯定你已經有辦法將更少的力量應用於AddForce

因此,請嘗試將speed增加到約40000,那麼您應該能夠注意到應用了AddForce

如果你想保持speed值低,你當然可以只添加一個乘數這裏:

rb.AddForce(new Vector2(Time.deltaTime * speed * moveDirection * 10000f, 0), ForceMode2D.Force); 
0

一個很好的一個行選項是使用變換翻譯。

void Update() 
{ 
    transform.Translate(Vector3.right * speed * Input.GetAxis("Horizontal") * Time.deltaTime); 
} 
0

AddForce將無法在運動學的剛體上工作。在您的Rigidbody組件中驗證並設置isKinematic爲false。 如果這已經是錯誤的,嘗試增加d4Rk建議的力值。