How to make a platform move between multiple points?

So I thought this would’ve worked, but for whatever reason when i press play the platform decides “Hey thats some nice points you’ve got there, I’m going to comepletely ignore them and go to some random position in the world”

I’ve triple checked everything in the inspector, made sure the points are empty gameobjects, everything is assigned, messed around with the allowence and still nothing seems to work.

I’ve attached my code here and for the life of me I can’t figure out where I’m going wrong. Any help would be appreciated!

Cheers

public class MultiPointPlatform : MonoBehaviour 
{
	public Transform[] points;
	int destPoint;
	public float allowence = 5f;

	// Use this for initialization
	void Start () 
	{
		// Set first target
		UpdateTarget ();
	}
	
	// Update is called once per frame
	void Update () 
	{
		// Update this position
		Vector3 thisPos = new Vector3 (transform.position.x, transform.position.y, transform.position.z);


		// Distance between current position and next position < alloence
		if (Vector3.Distance(thisPos, points[destPoint].position) < allowence)
		{
			UpdateTarget();
		}
			
		Debug.Log (points [destPoint].position);
	}

	void UpdateTarget()
	{
		if (points.Length == 0)
		{
			return;
		}
		transform.Translate(points [destPoint].position);
		destPoint = (destPoint + 1) % points.Length;

	}
}

transform.Translate adds the vector to the current position.

If you just want to set a new position, try;

transform.position = points [destPoint].position;

@CianLarkan this works:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    public Transform[] points;
    int destPoint;
    public float allowence = 5f;

    // Use this for initialization
    void Start()
    {
        // Set first target
        UpdateTarget();
    }

    // Update is called once per frame
    void Update()
    {
        // Update this position
        Vector3 thisPos = new Vector3(transform.position.x, transform.position.y, transform.position.z);


        // Distance between current position and next position < alloence
        if (Vector3.Distance(thisPos, points[destPoint].position) < allowence)
        {
            UpdateTarget();
        }

        transform.position = Vector3.Lerp(transform.position, points[destPoint].position, 3 * Time.deltaTime);
    }

    void UpdateTarget()
    {
        if (points.Length == 0)
        {
            return;
        }
        transform.position = points[destPoint].position;
        destPoint = (destPoint + 1) % points.Length;

    }
}