Хорошо, у меня есть gameObjects с тегом "Враг", и я собираю их так:
enemies = GameObject.FindGameObjectsWithTag("Enemy");
После этого я пытаюсь переместить первый "Враг":
int newPositionX;
int newPositionY;
bool targetReached = false;
int moveSpeed = 1;
void Update()
{
if (!targetReached)
{
newPositionX = Mathf.FloorToInt(enemies[0].transform.position.x)-1;
newPositionY = Mathf.FloorToInt(enemies[0].transform.position.y);
enemies[0].transform.position = Vector3.MoveTowards(enemies[0].transform.position,
new Vector3(newPositionX, newPositionY), moveSpeed * Time.deltaTime);
targetReached = true;
}
if (Vector3.Distance(enemies[0].transform.position, new Vector3(
newPositionX, newPositionY)) < 0.1f)
{
targetReached = false;
}
}
Но «Враг» не делает никаких ходов.Я могу отредактировать, что если я уберу:
targetReached = true;
, «Враг» движется, но я никак не могу его остановить.Это заставляет меня думать, что для перемещения функции MoveTowards необходимо постоянно вызываться в обновлении?