Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
i'm no jedi
 Аватар для legaju
16 / 10 / 6
Регистрация: 24.02.2019
Сообщений: 161

Какой метод использовать для адекватного управления персонажем в 2.5D игре?

12.04.2019, 12:00. Показов 2971. Ответов 13

Студворк — интернет-сервис помощи студентам
Кто знает, как устроено передвижение игрока в Зельде, покемонах, Undertale и подобных игрушках, думаю, поймут, о чём я говорю.
На моего персонажа не должна действовать гравитация, чтобы он свободно ходил вверх-вниз и оставался в том положении. Однако, он должен сталкиваться с коллайдерами, то есть использую RigidBody. Но, без гравитации, всякие rb.velocity и тд работают, как... Открытый космос. Значит, velocity мне не подходит... Гораздо правильнее работает метод transform, но он также некорректно взаимодействует с RigidBody (коллайдер игрока немного заползает в стены, если прижаться к ним).
Так вот... Как вообще грамотнее реализовать такое управление? Подскажите, пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2019, 12:00
Ответы с готовыми решениями:

Какой контейнер использовать в качестве рюкзака для персонажа в игре?
Всем добрый день, посоветуйте как лучше решить проблему: пишу консольную рпг, задумал сделать рюкзак персонажу в котором он будет хранить...

Какой элемент управления использовать для ввода с автодополнением?
Помогите найти контрол, это такое поле, куда водишь текст. Например хочу ввести слово "Собака" Ввожу С , ниже прилагается...

Какой элемент управления лучше использовать для повторения диалога печати из IE8?
Всем доброго времени суток.Мне выдали задания воссоздать окно из IE8 но я не знаю какой элемент использовать. На скриншоте выделил элемент...

13
i'm no jedi
 Аватар для legaju
16 / 10 / 6
Регистрация: 24.02.2019
Сообщений: 161
12.04.2019, 12:19  [ТС]
UPD. Возможно, ошибся, когда назвал это 2.5D. В общем, я имею в виду управление, подобное перечисленным выше играм. Когда игра 2D, спрайты все 2D, но изображено это как бы... Под углом. Прикрепляю картинку старой Зельды, на которую сам ориентируюсь, чтобы все меня точно поняли...
Миниатюры
Какой метод использовать для адекватного управления персонажем в 2.5D игре?  
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
12.04.2019, 12:56
Лучший ответ Сообщение было отмечено legaju как решение

Решение

Цитата Сообщение от legaju Посмотреть сообщение
Значит, velocity мне не подходит...
Я бы не сдавался так сразу. Вешаешь рб, убираешь галочку с гравити, делаешь фризы по вращению (если надо), в коде пишешь:
C#
1
2
3
4
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
rb.velocity = new Vector2(h, v) * speedMove;
rb.velocity = Vector2.ClampMagnitude(rb.velocity, speedMove);
Писал от руки могут быть ошибки.
1
i'm no jedi
 Аватар для legaju
16 / 10 / 6
Регистрация: 24.02.2019
Сообщений: 161
13.04.2019, 09:21  [ТС]
Код действительно пашет, даже от руки без ошибок) Но есть одно но. Теперь у персонажа появился какой-то.. Тормозной путь. Или SmoothTime это называется, вроде. То есть, после отпуска клавиши, он ещё немножко продолжает сдвигаться. Не подскажите, как от этого избавиться? Чтобы у него при зажатой клавише скорость была равна, скажем, единице, а при отпуске клавиши БУМ! Сразу ноль. Без "smooth time" (плавного замедления).
Я правда плохо все эти нюансы понимаю. Приятно, что на таких форумах помогают новичкам, спасибо.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.04.2019, 11:17
Лучший ответ Сообщение было отмечено legaju как решение

Решение

https://docs.unity3d.com/Scrip... isRaw.html
1
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
13.04.2019, 11:40
1max1, простых путей не ищем? )) в настройках ввода гравити увеличить надо, всего лишь.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.04.2019, 12:32
Cr0c, Это и есть простой путь ><
Description
Returns the value of the virtual axis identified by axisName with no smoothing filtering applied.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
13.04.2019, 12:59
1max1, переписывать код - не самый простой путь. Мышкой тыкнуть в пару полей - простой.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.04.2019, 13:23
Ну да, слово Raw добавить в две строки кода это очень непросто!
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
13.04.2019, 13:56
1max1, вообще-то да. Ну и кодом писать то, что правильнее настраивать редактором - такое себе...
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.04.2019, 14:03
Cr0c, Ну для тебя да, для меня - нет. Зачем по твоему юнитеки придумали этот метод? Уж явно не для того чтобы лезть в редактор.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
13.04.2019, 16:18
1max1, видно по названию, что для создания собственной фильтрации оси ввода.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
13.04.2019, 16:43
Cr0c, либо для неиспользования фильтрации вообще.
0
0 / 0 / 0
Регистрация: 19.04.2019
Сообщений: 10
20.04.2019, 08:25
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Vector2 vector;
Rigidbody2D rb;
 
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
 
void FixedUpdate()
{
        vector.x = Input.GetAxisRaw("Horizontal");
        vector.y = Input.GetAxisRaw("Vertical");
 
        rb.velocity = vector.normalized * movSpeed;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2019, 08:25
Помогаю со студенческими работами здесь

Какой метод использовать для обновления страницы
Здравствуйте. Не могу найти метод для обновления страницы. То есть юзер нажимает на кнопку и происходит обновление страницы. Я вывожу бд...

Какой метод для прослушивания клика по строке jtable использовать?
Скажите правильно я понял с помощью данной конструкции можно прослушать двойной клик мыши по строке таблицы? Я не совсем понимаю что...

Какой метод лучше использовать для создания колоды карт?
Я очень благодарен форуму за возможность задать вопрос, но чтобы пожалеть глаза людей отвечающих на мой вопрос прилагаю внизу фото с...

Какой метод лучше использовать для передачи параметров запускаемому приложению
В Process.Start возможные ключи командной строки отделяются от запускаемого файла запятой. В Interaction.Shell запускаемый файл + ключи...

Какой метод коллективного распознавания использовать для классификации цифр/символов?
Структура вопроса следующая: сначала даю понятие о коллективном распознавании, далее объяснение разных методов коллективной классификации,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru