Логика перемещения по поинтам
Добавлено: 05 дек 2021, 02:41
Есть 2D topdown. Есть враг который перемещается по 4 точкам Transform.
Есть скрипт. Но проблема заключается в том, что rb.MovePosition выполняется всего лишь на секунду или даже на долю,в тот момент когда waitTime <= 0. Соответственно враг никогда не дойдёт до точки( он лишь чутка дёргается, а если добавить скорости то уже телепортируется). А если убрать таймер,то чего начинает штормить как и следовало ожидать. Как тут лучше поступить?
Есть скрипт. Но проблема заключается в том, что rb.MovePosition выполняется всего лишь на секунду или даже на долю,в тот момент когда waitTime <= 0. Соответственно враг никогда не дойдёт до точки( он лишь чутка дёргается, а если добавить скорости то уже телепортируется). А если убрать таймер,то чего начинает штормить как и следовало ожидать. Как тут лучше поступить?
Синтаксис:
Используется csharp
void MovePozition(Vector2 direction)
{
if (waitTime <= 0)
{
//transform.position = Vector2.MoveTowards(transform.position, point[Random.Range(0, 3)].position, 7 * Time.deltaTime);
rb.MovePosition((Vector2)transform.position + (direction * moveSpeed * Time.deltaTime));
waitTime = startWaitTime;
Debug.Log("go");
}
else
{
waitTime -= Time.deltaTime;
}
}
{
if (waitTime <= 0)
{
//transform.position = Vector2.MoveTowards(transform.position, point[Random.Range(0, 3)].position, 7 * Time.deltaTime);
rb.MovePosition((Vector2)transform.position + (direction * moveSpeed * Time.deltaTime));
waitTime = startWaitTime;
Debug.Log("go");
}
else
{
waitTime -= Time.deltaTime;
}
}