ecsproto.unity.physics3d
Описание
Языки
- C#100%
LeoECS Proto - интеграция событий Unity Physics3D
Интеграция событий Unity Physics3D для LeoECS Proto.
ВАЖНО! Требует C#9 (или Unity >=2021.2).
ВАЖНО! Зависит от: Leopotam.EcsProto, Leopotam.EcsProto.QoL, Leopotam.EcsProto.Unity.
ВАЖНО! Не забывайте использовать
-версии билдов для разработки иDEBUG-версии билдов для релизов: все внутренние проверки/исключения будут работать только вRELEASE-версиях и удалены для увеличения производительности вDEBUG-версиях.RELEASE
ВАЖНО! Проверено на Unity 2021.3 (зависит от нее) и содержит asmdef-описания для компиляции в виде отдельных сборок и уменьшения времени рекомпиляции основного проекта.
Социальные ресурсы
Официальный блог: https://leopotam.ru
Установка
В виде unity модуля
Поддерживается установка в виде unity-модуля через git-ссылку в PackageManager или прямое редактирование :
"ru.leopotam.ecsproto.unity.physics3d": "https://gitverse.ru/leopotam/ecsproto.unity.physics3d.git",
В виде исходников
Код так же может быть склонирован или получен в виде архива со страницы релизов.
Прочие источники
Официальная работоспособная версия размещена по адресу https://gitverse.ru/leopotam/ecsproto.unity.physics3d, все остальные версии (включая nuget, npm и прочие репозитории) являются неофициальными клонами или сторонним кодом с неизвестным содержимым.
UnityPhysics3D модуль
Модуль выполняет очистку полученных событий с unity-физики и их регистрацию в качестве компонентов, состоит из 2 частей - аспекта и логики.
Подключение аспекта в ручном режиме
Для подключения аспекта physics3d интеграции достаточно добавить его в главный аспект мира:
Подключение логики в ручном режиме
ВАЖНО! Следует внимательно следить за тем, в какую группу систем подключается модуль. В подавляющем большинстве случаев это должна быть группа систем, выполняющаяся в FixedUpdate().
Модуль physics3d подключается в том месте, в котором будет производиться очистка отработавших событий физики. Для того, чтобы разделить место регистрации и место удаления событий, можно воспользоваться именованной точкой и указать ее в конструкторе:
Подключение модуля целиком в автоматическом режиме
События
Все поддерживаемые типы событий описаны в подключаемом physics3d-аспекте:
По любому из них можно собрать итератор для обработки реакции на действия пользователя:
Действия
Действия (классы ) - это -компоненты, которые слушают события unity-физики и генерируют соответствующие ECS-события:
- UnityPhysics3DCollisionEnterAction
- UnityPhysics3DCollisionExitAction
- UnityPhysics3DControllerColliderHitAction
- UnityPhysics3DTriggerEnterAction
- UnityPhysics3DTriggerExitAction
Лицензия
Расширение выпускается под лицензией MIT-ZARYA, подробности тут.