Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.46 KB | None | 0 0
  1. void Update()
  2.     {
  3.         if (isMoving) // ежели в движении (изначально false)
  4.         {
  5.             Vector3 newPos = Vector3.Lerp(lastPos, nextPos, time); // лерпимся от последней позиции к следующей
  6.             transform.position = newPos;
  7.             time += (Time.deltaTime * speed);
  8.             if (time > 1)
  9.             {
  10.                 isMoving = false; // типа все, приехали
  11.             }
  12.         }
  13.         if (positions.Count > 0 && !isMoving) // если в очереди имеются позиции и мы не двигаемся
  14.         {
  15.             lastPos = transform.position; // текущую позицию принимает за последнюю
  16.             nextPos = positions.Dequeue(); // получаем из очереди следующую позицию
  17.             distance = Vector3.Distance(lastPos, nextPos); // считаем расстояние между позициями
  18.             speed = (1/(distance * timeInterval)); // суперформула по поиску типа скорости
  19.             time = (Time.deltaTime * speed); //ну типа мы ж уже стоим в last pose, если time будет 0, то в следующей итерации мы тоже тут стоять будем, а нам уже нужно идти кароче
  20.             isMoving = true; // типа мы в движении
  21.         }
  22.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement