Движение персонажей Unity 2D

Для игры, которую я пытаюсь создать, я хочу, чтобы объекты моего игрока двигались, когда удерживаются клавиши «W/A/S/D».

Например, если бы я хотел двигаться вправо, мне нужно было бы удерживать клавишу «D».

Я пытался использовать Rigidbody2D.AddForce, но мне не нравится ощущение создаваемого им движения.

Я ищу мгновенное движение и остановку, а не любое ускорение/замедление.

Любые идеи?

Спасибо!!! Алекс


person Alex    schedule 28.03.2016    source источник
comment
Попробуйте поискать в transform.position   -  person rhughes    schedule 28.03.2016
comment
TY :D да, я понял благодаря greenPadawan   -  person Alex    schedule 30.03.2016


Ответы (1)


Вы можете попробовать что-то вроде этого. В методе обновления извлеките значения движения из клавиш 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.

person greenPadawan    schedule 28.03.2016
comment
Чувак спасибо!! Это именно то движение, которое я ищу :D, большое спасибо, Алекс - person Alex; 30.03.2016