对于我正在尝试构建的游戏,我希望我的玩家对象在“W / A / S / D'被压制住了。
例如,如果我想向右移动,我必须按住D'。
我尝试过使用Rigidbody2D.AddForce,但我不喜欢它产生的动作感觉。
我正在寻找即时移动和停止,而不是任何加速/减速。
有什么想法吗?
谢谢!!! 亚历
答案 0 :(得分:0)
你可以尝试这样的事情。 在update方法中,使用以下代码从WASD键获取移动值。
MovementInputValue = Input.GetAxis ("VerticalAxis_name");
TurnInputValue = Input.GetAxis ("HorizontalAxis_name");
然后,在FixedUpdate方法中,使用以下代码移动对象。
// 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);
此代码是为3D移动编写的,但您可以轻松将其更改为2D