Kinematic Character Controller
Текущая версия: 3.4.4
Описание
Этот контроллер персонажа противопоставляется обычному "физическому" Rigidbody, но зато он обеспечивает плавное движение и скольжение, а так же множество других функций (список будет ниже). Из-за своей кинетической сути, на этот контроллер не оказывают влияния физика внешнего мира, и приложенные к нему силы, все движение должно быть явно задано в вашем скрипте.
В комплект входят
- Основные компоненты (Core), которые пользователи будут использовать для создания своих собственных контроллеров персонажей
- Пример контроллера персонажей, предназначенный для демонстрации возможностей системы
- Пошаговое руководство, представляющее собой серию руководств, в которых приведены примеры того, как реализуются общие функции, такие как двойные прыжки, лазание по лестницам, плавание, rootmotion и т.д....
Основные функции
- Столкновения на основе Capsule Collider
- Плавная интерполяция движения
- Нет GC аллокаций, несколько вариантов качества / производительности на выбор
- Управление перемещением по ступеням
- Привязка к земле (не "вылетает" со склонов)
- Изящно справляется с распространенными ошибками управления персонажами, такими как медленно сужающиеся коридоры, скошенные углы и вогнутые коллайдеры
- Поддерживает толкание или стояние на динамических твердых телах
- Поддерживает движущиеся платформы, не требуя управления объектами.
- Поддерживает произвольную гравитацию и направление вверх
- Поддерживается привязка физики / движения к определенной плоскости (полезно для 2.5D игр)
- Поддерживается игнорирование определенных столкновений
- Сделано с учетом сетевого взаимодействия. Вы можете иметь явный контроль над "отсчетом времени" симуляции символов, что позволяет вам использовать этот пакет в авторитетной серверной архитектуре с повторным моделированием входных данных.
Как использовать
Внимание! KinematicCharacter требует определенного уровня знаний и опыта разработчика, он совсем не подходит для новичков.
Добавьте компонент KinematicCharacterMotor в свой GameObject, а затем создаете свой собственный пользовательский класс, который реализует интерфейс ICharacterController, и назначаете его "мотору", это предоставит вам различные коллбеки, например: UpdateVelocity, UpdateRotation, IsColliderValidForCollisions и т.д.
Скриншоты
Требования
Свободное место на диске: 27.1 MB
Версия Unity | Built-in | URP | HDRP |
---|---|---|---|
2020.3.30 или выше | Да | Да | Да |
Важно: демосцена создана в Built-in пайплайне, но компонент может работать и в других, так что пусть это не вводит вас в заблуждение.
Отсутствие скольжения, баги при приседании, если над головой находятся коллайдеры нескольких разных объектов и т. д.
В общем, как доберусь, надо будет проверить.