Плеер движется намного быстрее в сборке по сравнению с редактором Unity 2D - PullRequest
0 голосов
/ 19 апреля 2020

Мой вопрос совпадает с названием. Мой игрок и враги движутся быстрее, когда я создаю игру, по сравнению с тем, когда я играю в редакторе. Я смотрел онлайн, но большинство страниц форума говорят, что они умножают движение на Time.deltaTime, но по какой-то причине это не работает для меня, потому что даже когда я перестраиваю игру, движение происходит намного быстрее. Если это помогает, мой персонаж и враги перемещаются с помощью Rigidbody2D.MovePosition. Я думаю, что мне нужно ограничить частоту кадров, чтобы все было медленнее, но я не уверен. Если вы думаете, что я должен, как бы я go об этом? Заранее спасибо.

Как враги, так и игрок используют это для перемещения:

GetComponent<Rigidbody2D>().MovePosition(transform.position + move * speed * Time.deltaTime);

Если это помогает, «перемещение» - это координата Vector3, и для персонажа игрока устанавливается скорость 30. Я нажимал «строить и запускать» каждый раз после внесения изменений.

1 Ответ

1 голос
/ 20 апреля 2020

Ваш код в FixedUpdate () или Update ()? Физический код должен быть в FixedUpdate (). Обратите внимание, что я изменил Time.deltaTime на Time.fixedDeltaTime

void Update() {
  //Your Non Physics Code
}

void FixedUpdate() {
   //Your Physics code aka
   GetComponent<Rigidbody2D>().MovePosition(transform.position + move * speed * Time.fixedDeltaTime);

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