我正在尝试让ai遵循路径,但无法正常工作

时间:2019-01-31 02:33:04

标签: c# unity3d

我想要一个简单的圆圈AI跟随我掉下来的一些不可见的游戏对象。转到第一个,然后停止。

我在第二个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 :(得分:3)

您几乎从不希望比较游戏中的位置是否相等,而要检查它们是否比合理的较小距离更近。

代替:

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

尝试类似的方法,即根据您认为可接受的条件(在我的示例中为0.01f)来确定您是否“合理地接近”:

if((transform.position - target[current].position).magnitude < 0.01f)