Я хотел бы сделать чтобы враг циклично(бесконечно) шел влево а потом в вправо но у меня лишь получилось движение по точкам но делать 10000 точек не вариант...
Код:
public GameObject[] waypoints;
private int currentWaypoint = 0;
private float lastWaypointSwitchTime;
[SerializeField] private float speed = 1.0f;
void Start()
{
lastWaypointSwitchTime = Time.time;
}
void Walk()
{
Vector3 startPosition = waypoints[currentWaypoint].transform.position;
Vector3 endPosition = waypoints[currentWaypoint + 1].transform.position;
float pathLength = Vector3.Distance(startPosition, endPosition);
float totalTimeForPath = pathLength / speed;
float currentTimeOnPath = Time.time - lastWaypointSwitchTime;
gameObject.transform.position = Vector2.Lerp(startPosition, endPosition, currentTimeOnPath / totalTimeForPath);
if (gameObject.transform.position.Equals(endPosition))
{
if (currentWaypoint < waypoints.Length - 2)
{
currentWaypoint++;
lastWaypointSwitchTime = Time.time;
}
}
}