Как стать автором
Обновить

Комментарии 6

круто, спасибо) надеюсь будет еще

Рад, что понравилось :)

Да, продолжение будет.

Огромное спасибо. Так мало уроков по ECS, изучаю по твоим и тому что есть в инете (мало). Параллельно делаю проект 2D на Leo ECS.

Рад стараться!

Хорошая статья и сам подход Ecs нравится, но у меня возник вопрос: Как реализовать OnTriggerEnter в leoecs?

Я понял, что нужно создавать entity и вешать на него комнонетн, но если я хочу чтобы на entity персонажа крепится компонент, при вхождение в триггер другим объектом, например пулей

Как это можно сделать?

Чтобы "поймать" события штатной физики Unity, придется создавать тонкий MonoBehaviour класс и вешать его на GameObject. Внутри будет метод с нужным событием (OnTriggerEnter, например), а в нем уже как-то прокидываются события о физике в ECS. Например, метод может создать новую отдельную сущность с компонентом TriggerEnter и какими-то данными внутри, а может просто добавит компонент к уже существующей сущности. Прокинуть данные о ECS в MonoBehaviour можно тоже по-разному. Можно вручную заполнить поля в Init-системе, можно поместить их в сервис-локатор или синглтон.

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

А еще можно посмотреть вот этот проект, там я прокидываю события физики в ECS без расширения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации