в юнити у меня есть такая корукутина, куда вставить строчку time,DeltaTIme в этом коде IEnumerator Fall() { float speedY = 0f; float acceleration = 0.001f; bool isFall = true; while (isFall) { speedY += acceleration; Vector2 pos = new Vector2(transform.position.x, transform.position.y – speedY); transform.position = pos; yield return null; } }
float speedY = 0f;
float acceleration = 0.001f;
while (isFall) {
speedY += acceleration;
Vector2 pos = new Vector2(transform.position.x, transform.position.y - speedY);
transform.position = pos;
yield return null;
}
Теперь необходимо добавить в это изменение позиции какой-то параметр времени. В таком случае, для изменения движения во времени, используется delta time. Delta time позволяет обеспечить плавное изменение движения, независимо от того, как быстро работает компьютер или как много полетов игрок делал ранее.
float speedY = 0f;
float acceleration = 0.001f;
while (isFall) {
speedY += acceleration * Time.deltaTime;
Vector2 pos = new Vector2(transform.position.x, transform.position.y - speedY * Time.deltaTime);
transform.position = pos;
yield return null;
}
Здесь мы перемножаем ускорение и delta time для вычисления изменения скорости. Затем перемножаем скорость и delta time для вычисления изменения позиции объекта по оси Y. Теперь наша корутина учитывает время и движение будет более плавным.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет