@Ad1yar

Как сделать зацикленное движение в Unity2D?

Я хотел бы сделать чтобы враг циклично(бесконечно) шел влево а потом в вправо но у меня лишь получилось движение по точкам но делать 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;
            }
        }
    }
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Достаточно двух точек. И если currentWaypoint последняя, то устанввливать currentWaypoint в 0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы