I’m using this code to move an object from one point called “waypoints” to another one and I have a problem to loop this, when I added loop do…while then unity crashed (everything is commented) any idea why or where should I add loop, I was trying several times.
public class FollowThePath : MonoBehaviour
{
//Array of waypoints to walk from one to the next one
[SerializeField]
private Transform[] waypoints;
//Walk speed that can be set in Inspector
[SerializeField]
private float moveSpeed = 2f;
//Index of current waypoint form which Enemy walks to the next one
private int waypointIndex = 0;
//Use this for initialization
private void Start()
{
//Set position of Enemy as position of the first waypoint
transform.position = waypoints[waypointIndex].transform.position;
}
//Update is called once per frame
private void Update()
{
//Move function of Enemy
Move();
}
//Method that actually make Enemy walk
private void Move()
{
//If Enemy didn't reach last waypoint it can move
//If Enemy reached last waypoint then it stops
if (waypointIndex <= waypoints.Length - 1)
{
//Move Enemy from current waypoint to the next one
//using MoveTowards method
transform.position = Vector2.MoveTowards(transform.position,
waypoints[waypointIndex].transform.position,
moveSpeed * Time.deltaTime);
//If Enemy reaches position of waypoint he walked towards
//then waypointIndex is increased by 1
// and Enemy starts to walk to the next waypoint
if (transform.position == waypoints[waypointIndex].transform.position)
{
waypointIndex += 1;
}
}
}
}