I have a player with a Rigidbody, I want it to follow along the Waypoints, I have a script for it I tested it first on a Cube, everything worked fine, but on my character it just moves Towards the first waypoint then stays on the first waypoint instead of going ahead. Even if I comment out the LookAt Code section its not working. It could maybe cause the Y position of the waypoints that my player is stuttering, I changed it now. It is now moving along but stuttering much.
Here is a picture of the problem:

Here is my code:
public GameObject[] waypoints;
public float grindSpeed;
public float turnSpeed;
public int currentWaypoint;
private Animator anim;
private Rigidbody rb;
public bool isGrinding = false;
void Start()
{
anim = GetComponent<Animator>();
rb = GetComponent<Rigidbody>();
}
void Update()
{
MoveAlongWaypoints();
if(isGrinding)
anim.SetBool ("isOnGrinding", true);
else if(!isGrinding)
anim.SetBool("isOnGrinding", false);
}
void MoveAlongWaypoints()
{
if(isGrinding)
{
//TRANSLATE
transform.position = Vector3.MoveTowards(transform.position, waypoints[currentWaypoint].transform.position, grindSpeed * Time.deltaTime);
//ROTATE
var rotation = Quaternion.LookRotation(waypoints[currentWaypoint].transform.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, turnSpeed * Time.deltaTime);
if(transform.position == waypoints[currentWaypoint].transform.position)
{
currentWaypoint++;
}
}
}
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "GrindWayPoint")
{
Debug.Log ("Waypoint!!");
isGrinding = true;
}
}