the code is for moving an object from point to point and I want to add a loop and each is not working I was trying with do…while and while (maybe my boolean expression was wrong) this code is with for loop.
public class FollowThePath : MonoBehaviour
{
//Array of waypoints to walk from one to the next one
[SerializeField]
public 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()
{
for(int i = 0; i <= 10; i++)
{
//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 (Vector3.Distance(transform.position, waypoints[waypointIndex].position) < 0.01f)
{
waypointIndex += 1;
}
if (waypointIndex == 4)
{
transform.position = waypoints[0].transform.position;
}
}
}
}
}