Четверг, 25 Апреля 2024, 13:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Передвижение (Передвижение персонажа)
Передвижение
DonaldYKДата: Пятница, 15 Июня 2018, 00:07 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте. Как сделать, чтобы персонаж плавно переходил из точки А в точку Б по одному нажатию на экран?
2D Проект


Сообщение отредактировал DonaldYK - Пятница, 15 Июня 2018, 00:11
vampir0305Дата: Пятница, 15 Июня 2018, 06:57 | Сообщение # 2
Unity C# Programmer
Сейчас нет на сайте
Код
transform.position = Mathf.Lerp(transform.position, target.transform.position, Time.deltaTime);


Красочная сюжетно-ориентированная игра-головоломка
drcrackДата: Пятница, 15 Июня 2018, 08:19 | Сообщение # 3
старожил
Сейчас нет на сайте
даже не пробуй, это не будет работать)) Lerp с Time.deltaTime в качестве веса не имеет смысла
тут смотри: https://gcup.ru/forum/59-100550-1
vampir0305Дата: Пятница, 15 Июня 2018, 09:17 | Сообщение # 4
Unity C# Programmer
Сейчас нет на сайте
drcrack, Да, я ошибся, надо было писать
Код
transform.position = Vector3.Lerp(transform.position, target.transform.position, Time.deltaTime);

То что ты предлагаешь, конечно лучше)


Красочная сюжетно-ориентированная игра-головоломка
drcrackДата: Пятница, 15 Июня 2018, 09:57 | Сообщение # 5
старожил
Сейчас нет на сайте
Цитата
drcrack, Да, я ошибся, надо было писать

ты опять ошибся, это не будет работать) третий параметр Lerp должен плавно меняться от 0 до 1 (первый кадр 0, второй 0.017, третий 0.034 и так далее до 1)
а у тебя он всегда будет одинаковый (примерно 0.017 при 60 fps) и обьект будет стоять или слегка дергаться около начальной позиции


Сообщение отредактировал drcrack - Пятница, 15 Июня 2018, 10:08
seamanДата: Пятница, 15 Июня 2018, 12:28 | Сообщение # 6
старожил
Сейчас нет на сайте
Цитата
это не будет работать)

Вообще то будет. Обрати внимание, что первый параметр не стартовая позиция, а текущая. Т.е. каждый кадр от текущей позиции сдвигаемся на определенное расстояние к цели.
vampir0305Дата: Пятница, 15 Июня 2018, 13:40 | Сообщение # 7
Unity C# Programmer
Сейчас нет на сайте
drcrack, Всё работает. Я даже проверил. seaman, правильно написал.

Красочная сюжетно-ориентированная игра-головоломка
drcrackДата: Пятница, 15 Июня 2018, 14:46 | Сообщение # 8
старожил
Сейчас нет на сайте
Цитата
Вообще то будет. Обрати внимание, что первый параметр не стартовая позиция, а текущая. Т.е. каждый кадр от текущей позиции сдвигаемся на определенное расстояние к цели.

Точно, не обратил внимания
Но тогда получается что каждый кадр оно будет сдвигаться на 1/60 от оставшегося расстояния (если предположить что фпс стабильно 60)
Т.е. скорость будет постоянно уменьшаться, кроме того, теоретически цели оно вообще никогда не достигнет (практически все же возможно достигнет из-за неточности float)
Кароче, все равно работать не будет :D По крайней мере так как нужно

Цитата
drcrack, Всё работает. Я даже проверил.

ты проверил и обьект плавно перемещается с пункта А в пункт Б без изменения скорости?


Сообщение отредактировал drcrack - Пятница, 15 Июня 2018, 14:48
vampir0305Дата: Пятница, 15 Июня 2018, 21:30 | Сообщение # 9
Unity C# Programmer
Сейчас нет на сайте
drcrack, Объект плавно перемещается из пункта А в пункт Б и чем ближе он к цели тем меньше скорость. В итоге он походу реально никогда не встанет на его координаты.

Красочная сюжетно-ориентированная игра-головоломка
DonaldYKДата: Пятница, 15 Июня 2018, 23:47 | Сообщение # 10
был не раз
Сейчас нет на сайте
Цитата vampir0305 ()
Я даже проверил.

Можете,пожалуйста, выложить полный код?


Сообщение отредактировал DonaldYK - Пятница, 15 Июня 2018, 23:51
drcrackДата: Суббота, 16 Июня 2018, 00:26 | Сообщение # 11
старожил
Сейчас нет на сайте
Цитата
Можете,пожалуйста, выложить полный код?

Т.е. тебя не смущает что он в следующем сообщении написал что проверил еще раз и оно не работает как надо? :D


Сообщение отредактировал drcrack - Суббота, 16 Июня 2018, 00:26
vampir0305Дата: Суббота, 16 Июня 2018, 11:21 | Сообщение # 12
Unity C# Programmer
Сейчас нет на сайте
DonaldYK, Внимательно смотри! drcrack, скинул ссылку на нормальный рабочий код.

Красочная сюжетно-ориентированная игра-головоломка
DonaldYKДата: Суббота, 16 Июня 2018, 23:22 | Сообщение # 13
был не раз
Сейчас нет на сайте
Цитата vampir0305 ()
скинул ссылку

мне нужна не камера, а передвижение перса
drcrackДата: Суббота, 16 Июня 2018, 23:47 | Сообщение # 14
старожил
Сейчас нет на сайте
Цитата
мне нужна не камера, а передвижение перса

а ну тогда извини, в юнити из скрипта можно двигать только камеру, тебе нужен другой движок facepalm
DonaldYKДата: Воскресенье, 17 Июня 2018, 11:47 | Сообщение # 15
был не раз
Сейчас нет на сайте
Цитата drcrack ()
тебе нужен другой движок

Какой посоветуете, чтоб на андроид/ios собрать?
seamanДата: Воскресенье, 17 Июня 2018, 13:09 | Сообщение # 16
старожил
Сейчас нет на сайте
Самописный! Сам написал - сам сможешь двигать что захочешь!
PS: если что - это тоже сарказм
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Передвижение (Передвижение персонажа)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг