private void MoveToWaypoint() { if (waypointIndex <= waypoints.Count - 1) { Vector2 targetPosition = waypoints[waypointIndex].position; float moveDelta = waveConfig.GetMoveSpeed() * Time.deltaTime; transform.position = Vector2.MoveTowards(transform.position, targetPosition, moveDelta); if ((Vector2)transform.position == targetPosition) { waypointIndex++; } } else { if (waveConfig.GetInfiniteMoving()) { waypointIndex = 0; } else { Destroy(this.gameObject); } } }