phobious
@phobious
"ты сам не понимаешь чего хочешь"

Как переместить объект на несколько единиц?

У меня есть куб, задача состоит в том чтобы при нажатии на клавишу двигать его ровно на 5 единиц по оси Х , только делать это плавно, через transform.Translate

С плавным движением я разобрался , а как мне сдвинуть на несколько единиц то?

Скажу сразу, MoveTowards не подойдёт, объект всегда движется вверх по оси Y (условно назовем это раннером) так что перемещение между двумя точками мне не подходит
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ответы на вопрос 2
@NoNameDeveloper
Unity Developer
transform.position = Vector3.Lerp(startPosition, endPosition, .1f);
Ответ написан
@pashara
так что перемещение между двумя точками мне не подходит

Вобще глупости. Всегда будет точка откуда идти и куда нужно прийти.
Тут либо в Update код крутить
transform.position = Vector3.Lerp(transform.position, targetPosition, .1f);

либо высчитывать delta-смещения за кадр
float maxSpeed = 2f;
float maxDelta = maxSpeed * Time.deltaTime;
Vector3 delta = transform.position - targetPosition;
if (delta > maxDelta)
{
   delta = delta.normalized * maxDelta.magnitude;
}
transform.position += delta;

P.S. Код не проверял, но идея такая
Ответ написан
Ваш ответ на вопрос

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

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