Комментарии 6
круто, спасибо) надеюсь будет еще
Огромное спасибо. Так мало уроков по ECS, изучаю по твоим и тому что есть в инете (мало). Параллельно делаю проект 2D на Leo ECS.
Хорошая статья и сам подход Ecs нравится, но у меня возник вопрос: Как реализовать OnTriggerEnter в leoecs?
Я понял, что нужно создавать entity и вешать на него комнонетн, но если я хочу чтобы на entity персонажа крепится компонент, при вхождение в триггер другим объектом, например пулей
Как это можно сделать?
Чтобы "поймать" события штатной физики Unity, придется создавать тонкий MonoBehaviour класс и вешать его на GameObject. Внутри будет метод с нужным событием (OnTriggerEnter, например), а в нем уже как-то прокидываются события о физике в ECS. Например, метод может создать новую отдельную сущность с компонентом TriggerEnter и какими-то данными внутри, а может просто добавит компонент к уже существующей сущности. Прокинуть данные о ECS в MonoBehaviour можно тоже по-разному. Можно вручную заполнить поля в Init-системе, можно поместить их в сервис-локатор или синглтон.
Советую посмотреть вот это расширение. Я написал его, чтобы не приходилось каждый раз создавать MonoBehaviour класс для событий физики.
А еще можно посмотреть вот этот проект, там я прокидываю события физики в ECS без расширения.
Создание шутера с LeoECS. Часть 2