方法 'Distance' 没有重载需要 1 个参数

No overload for method 'Distance' takes 1 arguments

我正在尝试编写让对手在两点之间移动并在接触时摧毁玩家的代码。

public class MovementBetweenPoints : MonoBehaviour {
    public Transform[] keyPoints;
    public float speed;
    private int currentKeyPoint;
    public float min_Distance;
    public float Distance;

    // Use this for initialization
    void Start () 
    {
        transform.position = keyPoints[0].position;
        currentKeyPoint = 1;
    }

    // Update is called once per frame
    void Update () 
    { 
        // ----------- Error happens on next line
        if (Vector3.Distance(transform.position - keyPoints[currentKeyPoint].position) <= min_Distance)   
        {
            currentKeyPoint++;
        }

        if (currentKeyPoint >= keyPoints.Length)
        {
            currentKeyPoint = 0;
        }

        transform.position = Vector3.MoveTowards(transform.position, keyPoints[currentKeyPoint].position, speed * Time.deltaTime);
    }

    void OnTriggerEnter(Collider Player)
    {
        Destroy(Player.gameObject);
    }

}

No overload for method 'Distance' takes 1 arguments."

如何解决?

Distance调用returns两点之间的距离但是你写的代码只给出了一个点。我认为您在想要“,”的地方有一个“-”。
试试这个:

if (Vector3.Distance(transform.position, keyPoints[currentKeyPoint].position) <= min_Distance)