對於我正在嘗試構建的遊戲,當'W/A/S/D'被按下時,我希望我的玩家對象移動。Unity 2D角色移動
例如,如果我想要向右移動,我必須按住'D'。
我試過使用Rigidbody2D.AddForce,但我不喜歡它創建的運動的感覺。
我正在尋找即時移動和停止,而不是任何加速/減速。
任何想法?
謝謝!!! 亞歷克斯
對於我正在嘗試構建的遊戲,當'W/A/S/D'被按下時,我希望我的玩家對象移動。Unity 2D角色移動
例如,如果我想要向右移動,我必須按住'D'。
我試過使用Rigidbody2D.AddForce,但我不喜歡它創建的運動的感覺。
我正在尋找即時移動和停止,而不是任何加速/減速。
任何想法?
謝謝!!! 亞歷克斯
你可以嘗試這樣的事情。 在更新方法中,使用以下代碼從WASD密鑰獲取移動值。
MovementInputValue = Input.GetAxis ("VerticalAxis_name");
TurnInputValue = Input.GetAxis ("HorizontalAxis_name");
然後,在固定更新方法中,使用以下代碼移動對象。
// For moving
Vector3 movement = transform.forward * MovementInputValue * m_Speed * Time.deltaTime;
rigidbody.MovePosition(rigidbody.position + movement);
//For turning
float turn = TurnInputValue * m_TurnSpeed * Time.deltaTime;
Quaternion turnRotation = Quaternion.Euler (0f, turn, 0f);
rigidbody.MoveRotation (rigidbody.rotation * turnRotation);
該代碼可用於三維運動編寫的,但你可以很容易地將其更改爲2D
試着看'transform.position' – rhughes
TY:d是啊,我知道了感謝greenPadawan – Alex