Страница 1 из 1

2D top down передвижение

СообщениеДобавлено: 03 окт 2022, 03:43
simxan
Здравствуйте, я любитель-разработчик на Unity, вместе с братом делаем пиксельную тайловую 2D RPG-игру. Столкнулись с проблемой реализации передвижения персонажа. Задача стоит такая: при клике мыши по карте, персонаж должен передвигаться к ней по кратчайшему маршруту, но с определённым шагом (например в 1.0f) и только в двух осях, x и y, попутно меняя вектора направления (через Vector2.up или Vector3.up например), чтобы он сохранял положение вектора после остановки. Реализовать скрипт на передвижение получилось двумя способами, через клавиши (передвигается по тайлам, но суть механики нам не подходит), либо нажатием мыши по карте (передвигается по прямой траектории, что опять же нам не подходит). Есть ли возможность как-то комбинировать эти механики, чтобы персонаж двигался строго по тайлам, попутно избегая коллайдеры (ну ячейки, на которые он не может ступить, к примеру стена или вода). То есть можно ли центр позиции игрока привязать к центру сетки размерами 1, 1, 0? Пробовал разные варианты, гуглил, ничего не нашёл. Если нужно будет подробнее описать проблему, скину скрипты-наработки, которые мы написали.

Re: 2D top down передвижение

СообщениеДобавлено: 03 окт 2022, 21:18
1max1
Алгоритм А*, классика.

Re: 2D top down передвижение

СообщениеДобавлено: 04 окт 2022, 13:44
simxan
Может быть продемонстрируете на C# в Unity.Engine как это примерно выглядит?

Re: 2D top down передвижение

СообщениеДобавлено: 05 окт 2022, 01:31
1max1
В гугле и на ютубе есть много примеров.