Движение WASD в unity2d - PullRequest
       25

Движение WASD в unity2d

0 голосов
/ 02 марта 2020

Я новичок в Unity и хотел знать, как я могу установить клавиши A и D , чтобы переместить меня right и left с помощью Rigidbody2D. Я нашел этот скрипт на форуме, но он не работает:

public float speed = 5f;
private float movement = 0f;
private Rigidbody2D rigidBody;
// Use this for initialization
void Start()
{
    rigidBody = GetComponent<Rigidbody2D>();
}

// Update is called once per frame
void Update()
{
    movement = Input.GetAxis("Horizontal");
    if (movement > 0f)
    {
        rigidBody.velocity = new Vector2(movement * speed, rigidBody.velocity.y);
    }
    else if (movement < 0f)
    {
        rigidBody.velocity = new Vector2(movement * speed, rigidBody.velocity.y);
    }
    else
    {
        rigidBody.velocity = new Vector2(0, rigidBody.velocity.y);
    }
}

1 Ответ

0 голосов
/ 03 марта 2020

Есть ли ошибка?
Первое, что нужно проверить, это то, к чему вы подключили этот скрипт, на самом деле Rigidbody2D.

Физика, ie установка скоростей твердого тела, должна быть сделана в FixedUpdate, а не Update, если вы посмотрите на это, и это кажется слишком запутанным сейчас, не волнуйтесь, вы можете сойти с рук это пока.

Возможно, вам следует попробовать использовать rb.AddForce(movement * speed, ForceMode2D.Impluse);.

Поскольку переменная movement будет на самом деле положительной или отрицательной, в зависимости от того, какую клавишу вы нажимаете, первые два бита операторов if не

Попробуйте посмотреть в этом на один урок о перемещении игрока.

...