How do I detect when an object is a certain distance from a point in order to activate an event?

I’m trying to make a character go from one point to another using a navigation script I wrote but unfortunately when I set the if statement to move onto the next point as

agent.SetDestination(Point1.position);
			if(gameObject.transform.position == Point1.position)
			{
				posProgress++;
			}
			transform.LookAt(Point1);

It just gets stuck at that point and doesnt go anywhere.

Here’s my full update script:

void Update () 
	{
		switch(posProgress)
		{
		case 0:
			agent.SetDestination(Point1.position);
			if(gameObject.transform.position == Point1.position)
			{
				posProgress++;
			}
			transform.LookAt(Point1);
			break;
		case 1:
			agent.SetDestination(Point2.position);
			if(gameObject.transform.position == Point2.position)
			{
				posProgress++;
			}
			transform.LookAt(Point2);
			break;
		case 2:
			agent.SetDestination(Point3.position);
			if(gameObject.transform.position == Point3.position)
			{
				posProgress++;
			}
			transform.LookAt(Point3);
			break;
		case 3:
			agent.SetDestination(Point4.position);
			if(gameObject.transform.position == Point4.position)
			{
				posProgress++;
			}
			transform.LookAt(Point4);
			break;
		case 4:
			agent.SetDestination(Point5.position);
			if(gameObject.transform.position == Point5.position)
			{
				posProgress++;
			}
			transform.LookAt(Point5);
			break;
		case 5:
			agent.SetDestination(FinalDest.position);
			if(gameObject.transform.position == FinalDest.position)
			{
				Destroy (this);
			}
			transform.LookAt(FinalDest);
			break;
		}
		transform.Rotate (270, 0, 0);

	}

Do you want to do something when the character gets in the proximity of Point1? You can do this:

 if(Vector3.Distance(gameObject.transform.position, Point1.position) < 1.0f) //set this to whatever suits best
             {
                 posProgress++;
             }

I don’t know the answer to your question but 1 comment I will make is that you shouldn’t check if gameObject.transform.position == PointX.position

You should do (gameObject.transform.position - PointX.position).sqrMagnitude <= 0.1f or something small.

It’s better to move to the next point when you get close enough to your point than when you are exactly at the point (which maybe never happens and is why your algorithm is stuck).