Unity C#:跨定义路径移动对象时出现问题

我正在尝试使用以下脚本沿从一个点到另一点的路径创建运动:

using UnityEngine;
public class FollowThePath : MonoBehaviour {

// Array of waypoints to walk from one to the next one
[SerializeField]
private Transform[] waypoints;

// Walk speed that can be set in Inspector
[SerializeField]
private float moveSpeed = 2f;

// Index of current waypoint from which Enemy walks
// to the next one
private int waypointIndex = 0;

// Use this for initialization
private void Start () {

    // Set position of Enemy as position of the first waypoint
    transform.position = waypoints[waypointIndex].transform.position;
}

// Update is called once per frame
private void Update () {

    // Move Enemy
    Move();
}

// Method that actually make Enemy walk
private void Move()
{
    // If Enemy didn't reach last waypoint it can move
    // If enemy reached last waypoint then it stops
    if (waypointIndex <= waypoints.Length - 1)
    {

        // Move Enemy from current waypoint to the next one
        // using MoveTowards method
        transform.position = Vector2.MoveTowards(transform.position,
           waypoints[waypointIndex].transform.position,
           moveSpeed * Time.deltaTime);

        // If Enemy reaches position of waypoint he walked towards
        // then waypointIndex is increased by 1
        // and Enemy starts to walk to the next waypoint
        if (transform.position == waypoints[waypointIndex].transform.position)
        {
            waypointIndex += 1;
        }
    }
}

}

但是,无论我尝试了什么,都不会触发此部分:

if (transform.position == waypoints[waypointIndex].transform.position)
        {
            waypointIndex += 1;
        }

仅当我将其放在movs函数之前的update()中时,它才会被触发。如果我在update()中的move函数之后添加它,它将永远不会被触发,并且对象也不会像其原始形式那样运动。

我在这里做错了什么?