Объект Unity не движется по прямой плавно - PullRequest
0 голосов
/ 27 октября 2019

У меня есть поля, сгенерированные Instantiate с Quaternion.identity, имя ABCDE с одинаковым размером, рядом друг с другом, и пробелов нет. Пример: https://imgur.com/TUm74DM

Сверху этих 5 ящиков есть сфера, в которой включен режим гравитации. Когда сфера движется по прямой на прямоугольниках от A до E, иногда она не движется плавно в этих X точках в image . Я не могу понять, почему и как это исправить.

Код:

for (int i = 0; i< 5; i++) spawnPath();

public void spawnPath()
{
    currentBox = Instantiate(box,currentBox.transform.GetChild(0).transform.GetChild(0).position,
       Quaternion.identity);
}

Позиция: https://imgur.com/Ta6fKCs

Обновление:

Позиция:https://imgur.com/qllXdiW Обратите внимание, что эти коробки выстроены идеально.

Движение Shpere:

public Rigidbody rb; void FixedUpdate(){ rb.AddForce(0, 0, forwardForce * Time.deltaTime); }

1 Ответ

0 голосов
/ 27 октября 2019

Есть несколько причин, по которым это может быть вызвано. Можно было бы сказать, что ящики расположены неправильно. Глядя на ваш код, он будет генерировать блоки друг над другом, потому что позиция одинакова для каждой итерации.

В случае, если блоки выстраиваются идеально, также возможно, что это вызвано дискретным столкновением. обнаружение. Дискретный разрешает столкновение только после его перемещения. Это означает, что при обновлении силы тяжести он может заметить столкновение с одним из углов и решить его неправильно.

...