Looking at points

Hey guys, I have a move to point script and what I want to do is to look at each point. Like A-B-C points Going from A to B. to look at B point going from B to C looking at C point. I have been fiddling with different codes and trying my own but i cant seem to get it working properly.

public Transform target;
	public Transform target2;
	public float rotationSpeed;
	public Vector3 firstPosition;
	public Vector3 secondPosition;
	private Quaternion _lookRotation;
	private Vector3 _direction;
	private bool TOF;
	private bool FOT;


	void Update()
	{

		if (transform.position == firstPosition) {
			TOF = true;
			FOT=false;
			if (transform.position == secondPosition) {
				FOT = true;
				TOF =false;
			}
				}
		if (TOF) {
			_direction = (target.position - transform.position).normalized;
				}
		if (FOT) {
			_direction = (target2.position - transform.position).normalized;
				}
		


		_lookRotation = Quaternion.LookRotation(_direction);

		transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime * rotationSpeed);


			
	}

I know it is an amateur code but i wouldn’t come here looking for help if I wasn’t truly stuck.

Hi!
If you have a gameobject that you want to move A to B to C, this should work: (untested code!)

public Vector3 aPosition;
public Vector3 bPosition;
public Vector3 cPosition;
public float allowedDis; //space allowed between next object to be "on" it

public float moveSpeed;

void Start(){
    allowedDis=2; //the smaller, the closer the position must be to notice
    moveSpeed=10;
    aPosition=Transform.Find("NameOfObjectA").transform.position;
    bPosition=Transform.Find("NameOfObjectB").transform.position;
    cPosition=Transform.Find("NameOfObjectC").transform.position;
}

void Update(){
   if(Vector3.Distance(transform.position,aPosition)<allowedDis){
        transform.LookAt(bPosition);
   }
   else if(Vector3.Distance(transform.position,bPosition)<allowedDis){
         transform.LookAt(cPosition);
   }

   transform.localPosition.z-=Time.deltaTime*moveSpeed;
}