1 | |
Реализовать перемещение персонажа11.09.2022, 23:24. Показов 2811. Ответов 9
Доброго времени!
Столкнулся с проблемой(прокрастинацией в коде!). Пытаюсь реализовать перемещение персонажа и для разного типа перемещения использовать разную скорость. Выглядит это примерно так.
Я знаю о существовании паттернов программирования. Хотя и не понимаю с чем их едят. С помощью пространных пояснений от разных авторов понял, что мне надо что то вроде этих паттернов чтобы избавиться от ИФОВ. Простое загугливание паттернов даёт слишком абстрактные знания. Или наоборот слишком частные случаи. Вообще не понятно как их учить. И какой выбрать для моего случая. Буду рад любым советам. Заранее спасибо!
0
|
11.09.2022, 23:24 | |
Ответы с готовыми решениями:
9
Перемещение персонажа Перемещение персонажа Перемещение персонажа Непрерывное перемещение персонажа по Button UI |
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
|
12.09.2022, 11:48 | 2 |
персонаж постоянно в движении или движение происходит при нажатии на кнопки?
0
|
12.09.2022, 12:10 [ТС] | 3 |
Fantom1987, при нажатии на кнопки. WASD + Mouse.
возможно мне подойдет паттерн состояния для переключения скорости. Я нашел видео и понял как они создаются. Но в конце автор показал дулю! Управляя переключениями между состояниями простыми if =(
0
|
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
|
12.09.2022, 12:45 | 4 |
devillived, не понимаю зачем так заморачиваться... делайте так чтобы сами понимали, что написали. чем проще код тем лучше - имхо)
0
|
12.09.2022, 12:55 [ТС] | 5 |
Fantom1987, проблема в том, что проще не работает.
и если я захочу добавить бег на корточках например. мне прийдется ТАКОЕ городить!!! вот я и ищу способ простой реализации ветвления условий с возможностью расширения.
0
|
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
|
||||||
12.09.2022, 13:13 | 6 | |||||
писал под 2д, но возможно поможет в реализации
0
|
12.09.2022, 13:35 [ТС] | 7 |
Fantom1987, Спасибо!
Я знаком с данной конструкцией. Это по сути те же ифы, то лько завернутые в switch case. Ну ладно пойду дальше книги по Unity читать. может там что то будет. Всем спасибо! Всем удачи.
0
|
2636 / 1564 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
||||||
12.09.2022, 21:56 | 8 | |||||
Сообщение было отмечено devillived как решение
Решение
Тема конечно непростая и в двух словах объяснить сложно. Если попробовать использовать такую "машину состояний", то кода придётся писать много, но зато легче понимать происходящее, так как каждое состояние описано в отдельном, конкретном классе и сразу видно - что оно делает (это состояние). Но совсем не факт, что вам в итоге будет удобно пользоваться этим способом.
Допустим в следующем примере есть игрок. В Update этого игрока выполняется update его текущего состояния. То-есть состояния могут быть разные, и каждое описывает своё, конкретное поведение. Каждое состояние имеет ссылку на игрока, чтобы была возможно ему что-то сообщить, например дать команду "изменить состояние" или что-то другое. Здесь у игрока 4 состояния (покой, ходьба, бег, плавание), изначально устанавливается состояния покоя. - состояние покоя ловит нажатие клавиш движения, и если движение есть, то переходит в состояние ходьбы - состояние ходьбы тоже ловит клавиши и двигает игрока, но если нажимается клавиша шифт, то переходит в состояние бега - состояние бега так же ловит клавиши и увеличивает скорость игрока, а так же дополнительно крутит его, как только клавиши движения отжаты или отжат шифт, то состояние переходит в состояние ходьбы - сам игрок (вне зависимости от состояния) ловит нахождения в триггере воды. И если попадает в него, то меняет своё состояние на состояние плавания. В котором добавляется возможность плавать не только влево-вправо, но и вверх-вниз. Для наглядности добавлена смена цвета у игрока и надпись на ним с описанием текущего состояния Сам код всего этого "добра" выглядит пугающе, но это потому что он сделан для примера, плюс всё в одном файле. Кликните здесь для просмотра всего текста
Ни в коем случае не принимайте это как панацею. Здесь лишь просто попытка объяснить мои понимания данного вопроса. Всё может выглядеть совершенно иначе, правильнее и гибче. Всё нужно подстраивать под свои конкретные задачи. На всякий случай добавлю пакет со сценой, но не уверен, что он корректно экспортировался. StatesExamplePackage.zip
1
|
2636 / 1564 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
|
12.09.2022, 22:36 | 10 |
devillived, Благодарю. Честно говоря удивлён, что код оказался понятным со стороны.
0
|
12.09.2022, 22:36 | |
12.09.2022, 22:36 | |
Помогаю со студенческими работами здесь
10
Перемещение персонажа по средствам анимации Перемещение персонажа через наклона устройства Задать перемещение персонажа по клику мыши Перемещение объектов || или создание персонажа Возможно ли реализовать создание персонажа самим игроком? Не могу реализовать движение персонажа по заданной кривой из точек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |