Unity 2D角色移动

问题描述:

对于我正在尝试构建的游戏,当'W/A/S/D'被按下时,我希望我的玩家对象移动。Unity 2D角色移动

例如,如果我想要向右移动,我必须按住'D'。

我试过使用Rigidbody2D.AddForce,但我不喜欢它创建的运动的感觉。

我正在寻找即时移动和停止,而不是任何加速/减速。

任何想法?

谢谢!!! 亚历克斯

+0

试着看'transform.position' – rhughes

+0

TY:d是啊,我知道了感谢greenPadawan – Alex

你可以尝试这样的事情。 在更新方法中,使用以下代码从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

+0

谢谢!! !真的很感谢帮助:D 今晚将试用它! – Alex

+0

伙计谢谢你!这正是我期待的运动:D,谢谢你,Alex – Alex