Задать вопрос
phobious
@phobious
Не отрицаю свою глупость, и нет, мне не стыдно

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

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

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

Скажу сразу, MoveTowards не подойдёт, объект всегда движется вверх по оси Y (условно назовем это раннером) так что перемещение между двумя точками мне не подходит
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Инженер
по тестированию
    10 месяцев
    Далее
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • XYZ School
    Разработка игр на Unity
    5 месяцев
    Далее
  • Skillfactory
    Разработчик игр на Unity
    18 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • GB (GeekBrains)
    Профессия Тестировщик
    6 месяцев
    Далее
  • OTUS
    Unity Game Developer. Basic
    5 месяцев
    Далее
  • Skillfactory
    Профессия Разработчик игр на Unity
    12 месяцев
    Далее
Решения вопроса 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. Код не проверял, но идея такая
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы