I’ve written this code that works, but i must keep repeating it over and over in script. I feel there must be a way to do this with an array but I’m having a hard time figuring it out.
if (state == 0)
{
float speed = movementSpeed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, waypoint.transform.position, speed);
if (Vector3.Distance(transform.position, waypoint.transform.position) <= 0)
{
state = 1;
}
}
if (state == 1)
{
float speed = movementSpeed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, waypoint1.transform.position, speed);
if (Vector3.Distance(transform.position, waypoint1.transform.position) <= 0)
{
state = 2;
}
}
if (state == 2)
{
etc… (copy paste for eternity)
Here is where i am stuck(my array attempt):
for (int i = 1; i < waypoints.Length; i++)
{
// print(Vector3.Distance(transform.position, waypoints*.transform.position));*
float speed = movementSpeed * Time.deltaTime;
transform.position = Vector3.MoveTowards(transform.position, waypoints*.transform.position, speed);*
if (Vector3.Distance(transform.position, waypoints*.transform.position) < 1)*
{
// break;
}
The problem i have when this runs is that the object just moves to the 1st waypoint and becomes stuck there…