Vector3.MoveTowards在2D寻路中无法正常工作

时间:2019-10-10 03:50:00

标签: c# unity3d game-engine

我正在尝试在Unity游戏中制作一个简单的2D寻路NPC,该NPC会在各个航点之间移动。我使用了一组航点和Vector3.MoveTowards在这些点之间移动,但是每次测试时,NPC都会向第一个航点移动一秒钟,然后开始沿屏幕向下移动并永远远离航点。我不确定为什么它会继续这样做。以下是我正在使用的代码段:

public float speed = 1f;
public Transform[] waypoints;
private int curWaypoint;
void Start()
{
    curWaypoint = 0;
}

void Update()
{
    MoveForward();
}

void MoveForward(){
    transform.position = Vector3.MoveTowards(transform.position, 
                                            waypoints[curWaypoint].transform.position,
                                            Time.deltaTime * speed);
    if(transform.position == waypoints[curWaypoint].transform.position){
        curWaypoint += 1;
    }
    if(curWaypoint == waypoints.Length){
        curWaypoint = 0;
    }
}

航路点只是带有gizmo的空GameObject,因此可以在编辑器中看到它们。然后,我用要NPC遵循的航路点填充检查器中的航路点数组。我不知道是什么原因导致了这种奇怪的行为,所以我们将不胜感激。

0 个答案:

没有答案