Странно работающий Time.deltaTime
Добавлено: 01 июл 2020, 14:49
Пишу скрипт для плавного движения панели выбора уровня(тип нажал на кнопку и она плавно уехала, как будто страницу перелистнул).
Скрипт отлично выполняет функцию перемещения объекта, к которому я прикрепил саму панель из кнопок для перемещения на уровни, но как только я добавляю Time.deltaTime при запуске сцены объект начинает трясти в пределах от -3 до 0 по осям X и Y, а функции движения сдвигают его вместо указаных 190 едениц примерно на 7-15. Без дельтатайма скрипт просто телепортирует объект в нужные координаты. Привожу сам код(без дельтатайма):
С дельтатаймом всё то же самое кроме функции Move(). Она выглядит так:
Подскажите как избежать тряски объекта или другой способ двигать его плавно. Заранее спасибо.
Скрипт отлично выполняет функцию перемещения объекта, к которому я прикрепил саму панель из кнопок для перемещения на уровни, но как только я добавляю Time.deltaTime при запуске сцены объект начинает трясти в пределах от -3 до 0 по осям X и Y, а функции движения сдвигают его вместо указаных 190 едениц примерно на 7-15. Без дельтатайма скрипт просто телепортирует объект в нужные координаты. Привожу сам код(без дельтатайма):
Синтаксис:
Используется csharp
public void next()
{
target = new Vector3(-190, 0, 0); // задаёт координаты за границей экрана, чтобы страница с уровнями плавно уплыла за экран
}
public void previous()
{
target = new Vector3(0, 0, 0); // задаёт координаты на экране, чтобы страница с уровнями вернулась на экран
}
public void Update()
{
Move();
}
public void Move()
{
levels.transform.position = Vector3.MoveTowards(transform.position, target, 10); // скрипт движения объекта
}
{
target = new Vector3(-190, 0, 0); // задаёт координаты за границей экрана, чтобы страница с уровнями плавно уплыла за экран
}
public void previous()
{
target = new Vector3(0, 0, 0); // задаёт координаты на экране, чтобы страница с уровнями вернулась на экран
}
public void Update()
{
Move();
}
public void Move()
{
levels.transform.position = Vector3.MoveTowards(transform.position, target, 10); // скрипт движения объекта
}
С дельтатаймом всё то же самое кроме функции Move(). Она выглядит так:
Синтаксис:
Используется csharp
public void Move()
{
levels.transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * 10);
}
{
levels.transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * 10);
}
Подскажите как избежать тряски объекта или другой способ двигать его плавно. Заранее спасибо.