ecsproto.unity.physics3d

0
README.md

Proto

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 или прямое редактирование

Packages/manifest.json
:

"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-аспекте:

По любому из них можно собрать итератор для обработки реакции на действия пользователя:

Действия

Действия (классы

xxxAction
) - это
MonoBehaviour
-компоненты, которые слушают события unity-физики и генерируют соответствующие ECS-события:

  • UnityPhysics3DCollisionEnterAction
  • UnityPhysics3DCollisionExitAction
  • UnityPhysics3DControllerColliderHitAction
  • UnityPhysics3DTriggerEnterAction
  • UnityPhysics3DTriggerExitAction

Лицензия

Расширение выпускается под лицензией MIT-ZARYA, подробности тут.