Перемещение Rigidbody с помощью ввода игрока - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь переместить объект в трехмерном мире, используя контроллер, но думаю, что мне чего-то не хватает, потому что он просто отсекается, как только я даю какой-либо ввод:

private void Update()
{
    float h = Input.GetAxisRaw("Horizontal");
    float v = Input.GetAxisRaw("Vertical");

    Vector3 movement = new Vector3(h, 0, v).normalized * Time.deltaTime * speed;
    if(h != 0 || v != 0)
        _rigidBody.MovePosition(movement);
}

Работает нормально, используя _rigidbody.velocity, но, насколько я понимаю, этого следует избегать для подобных вещей.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Rigidbody.MovePosition устанавливает положение твердого тела с интерполяцией. Похоже, вы хотите сместить позицию на movement, поэтому вам, вероятно, следует установить скорость. Если вы все еще хотите использовать MovePosition, вы должны сделать _rigidBody.MovePosition(transform.position + movement);.

0 голосов
/ 05 апреля 2019

«использование контроллера»

Вы имеете в виду Символьный контроллер Компонент?У вас есть 2 варианта, и оба они хорошо объяснены в документации Unity.Второй - Твердое тело Компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...