У меня есть GameObject, который получает координаты позиции из файла. Этот GameObject движется вибрирует, а не плавно. (как будто двигаясь вперед и назад.)
Это код, который предоставляет движение:
int counter = 0;
void Update()
{
var maxDistance = speed_* Time.deltaTime;
var oldPosition = transform.position;
var newPosition = Vector3.MoveTowards(transform.position, positions[counter], maxDistance);
var actualDistance = Vector3.Distance(newPosition, oldPosition);
var distanceRemainder = maxDistance - actualDistance;
if (distanceRemainder > 0.0001)
{
newPosition = Vector3.MoveTowards(newPosition, positions[counter], distanceRemainder);
counter++;
}
transform.localPosition = newPosition;
}
ПРИМЕЧАНИЕ. Данные, считанные из файла, находятся в массиве «позиции» ( координаты x, y, z).
Когда я понижаю значение 300f в переменной maxDistance, вибрация прекращается, и движение становится более плавным. Тем не менее, скорость Gameobject также замедляется. Как я могу обеспечить быстрое и плавное движение?
РЕШЕНИЕ:
При поиске решения проблемы я наткнулся на this топи c. Это помогло мне узнать источник проблемы.
Я заметил, что GameObject не вибрирует в виде сцены, он двигается плавно. Но объект, казалось, вибрирует в GameView. Проблема не в движущемся объекте, а в функции камеры, которую я пишу, чтобы следить за ним.
Функция камеры, которая была написана для отслеживания объекта, была обновлена, и проблема исчезла.
Спасибо всем, кто пытается помочь.