Я пытаюсь, чтобы Ай следовал по пути, но он не работает - PullRequest
0 голосов
/ 31 января 2019

Я хочу, чтобы простой круговой ИИ следовал за невидимыми игровыми объектами, которые у меня есть.Он переходит к первому, а затем останавливается.

Я поместил отладочную вещь во второй оператор if, а не запись в журнал.Я также попытался изменить второй оператор if на else.

using UnityEngine;
using System.Collections;


public class FollowPath : MonoBehaviour
{
    public Transform[] target;
     public float speed;

private int current = 0;

void Update()
{
    if(transform.position != target[current].position)
    {
        Vector2 pos = Vector2.MoveTowards(transform.position, target[current].position, speed * Time.deltaTime);
        GetComponent<Rigidbody2D>().MovePosition(pos);

    }
   if(transform.position == target[current].position)
    {
        current++;
        Debug.Log("2");
    }

}

}

1 Ответ

0 голосов
/ 31 января 2019

Вы почти никогда не хотите сравнивать позиции в играх на равенство, а скорее проверяйте, чтобы они были ближе, чем достаточно небольшое расстояние.

Вместо:

if(transform.position == target[current].position)

попробуйте что-то подобноекоторый просто проверяет, что вы «достаточно близки», как определено тем, что вы считаете приемлемым (0,01f в моем примере здесь):

if((transform.position - target[current].position).magnitude < 0.01f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...