Как я учил персонажа ходить


Взял капсулу из коробки и rigidbody оттуда же.

Сделал супер контроллер PlayerController. Его Start зовется самим Unity один раз при запуске, Update зовется каждый кадр им же, FixedUpdate определенное и всегда одинаковое количество раз в секунду.

Внутри Start получал игровые объекты и компоненты, создавал сервисы (об этом дальше)


Сервис - реализация интерфейса с методами Update и FixedUpdate

PlayerController в Update дергает метод Update в каждом сервисе по очереди (тоже самое и для FixedUpdate)

Внутри сервисов уже и происходит вся полезная логика. 


Сделал так, потому что иначе появляется много визуального программирования, которое фу

А так все красиво


Первый сервис проверяет нажатия WASD и толкает персонажа с помощью физики через rigidbody. Еще он реализует прыжок: проверяет, что персонаж на земле и нажатие пробела. Если и то, и то нормальное - то толкаем персонажа вверх.

Второй сервис реализует логику проверки того, что персонаж на земле. Снизу капсулы есть точка, откуда кидается луч вниз. Если он столкнулся с землей и расстояние до нее меньше определенного очень маленького значения, то считаем, что персонаж на земле. Пишем это в синглтоновский объект свойств. Первый сервис это оттуда и читал

Третий сервис работает с мышкой. Есть методы для получения движения мышки. Число от -1 до 1, которое говорит, в какую сторону и с какой скоростью двигается мышка (есть методы и для вертикального движения, и для горизонтального).  В зависимости от горизонтально движения поворачиваем всё тело персонажа, а от вертикального - камеру.


Все! Персонаж умеет ходить и прыгать.


Еще там есть конфиги, которые пока захардкожены. Но при желании, код можно чуть-чуть дописать и хранить где-нибудь в файлах.

Files

TargemBuild.7z 12 MB
Feb 26, 2021

Get TargemTest

Leave a comment

Log in with itch.io to leave a comment.