2016-03-28 17 views
1

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

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

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

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

Любые идеи?

спасибо !!! Alex

+0

Попробуйте посмотреть в 'transform.position' – rhughes

+0

TY: D да я получил его благодаря greenPadawan – Alex

ответ

0

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

+0

Спасибо !! ! Очень ценю помощь: D Попробуем это сегодня вечером! – Alex

+0

Чувак спасибо !! Это именно то движение, которое я ищу: D, спасибо тонну, Алекс – Alex

Смежные вопросы