Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Update()
- {
- if (isMoving) // ежели в движении (изначально false)
- {
- Vector3 newPos = Vector3.Lerp(lastPos, nextPos, time); // лерпимся от последней позиции к следующей
- transform.position = newPos;
- time += (Time.deltaTime * speed);
- if (time > 1)
- {
- isMoving = false; // типа все, приехали
- }
- }
- if (positions.Count > 0 && !isMoving) // если в очереди имеются позиции и мы не двигаемся
- {
- lastPos = transform.position; // текущую позицию принимает за последнюю
- nextPos = positions.Dequeue(); // получаем из очереди следующую позицию
- distance = Vector3.Distance(lastPos, nextPos); // считаем расстояние между позициями
- speed = (1/(distance * timeInterval)); // суперформула по поиску типа скорости
- time = (Time.deltaTime * speed); //ну типа мы ж уже стоим в last pose, если time будет 0, то в следующей итерации мы тоже тут стоять будем, а нам уже нужно идти кароче
- isMoving = true; // типа мы в движении
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement