Итак, у меня есть сценарий для перемещения объектов игры вокруг. Когда я двигаю gameObject один раз, он плавный. Но когда я двигаю его во второй раз, движение очень медленное и выглядит abit buggy.Unity GameObject не работает ровно, когда перемещается во второй раз
Первый вход в сценарии движения - это объект, затем позиция, в которую ему нужно перейти, и скорость в качестве последнего параметра. Все координаты основаны на локальном расположении. Я использую wait, потому что хочу подождать, прежде чем выполнять второе движение.
Я попытался переместить другие объекты дважды, но все они в конечном итоге двигаются очень медленно/багги.
Я не хочу запускать это в Update, поэтому я использую сопрограмму.
Вот мой код:
IEnumerator MovementGentryOne()
{
StartCoroutine(Movement(GentryOne, MovementCoords.GentryOneBasin, gentryspeed));
yield return new WaitForSeconds(2);
StartCoroutine(Movement(GentryOneArm, MovementCoords.GentryArmMoved, gentryspeed));
yield return new WaitForSeconds(2);
StartCoroutine(Movement(GentryOnePicker, MovementCoords.GentryPickerPick, gentryspeed));
yield return new WaitForSeconds(4);
//this one is not working smooth.
StartCoroutine(Movement(GentryOnePicker, MovementCoords.GentryPickerStart, gentryspeed));
yield return null;
}
private IEnumerator Movement(GameObject toMove, Vector3 position, float time)
{
float elapsedTime = 0;
while (elapsedTime < time)
{
toMove.transform.localPosition = Vector3.Lerp(toMove.transform.localPosition, position, (elapsedTime/time));
elapsedTime += Time.deltaTime;
yield return null;
}
toMove.transform.localPosition = position;
}
Любой идея, что происходит не так?
Сердечные приветы
Можете ли вы подтвердить, что один Movement-Coroutine закончил, прежде чем вы начнете новый? В противном случае вы будете бороться за движение, что вызовет странное, негладкое и лаконичное движение. – Maakep
Можете ли вы использовать возврат возврата StartCoroutine вместо ожидания секунд между ними? –
Кажется, что coroutine не останавливается. С отладчиком я заметил, что он никогда не доходит до утверждения после возврата доходности –