diff --git a/README.md b/README.md index ce4a13d..3255201 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ # Установка * ### Unity-модуль -Поддерживается установка в виде Unity-модуля в при помощи добавления git-URL [в PackageManager](https://docs.unity3d.com/2023.2/Documentation/Manual/upm-ui-giturl.html) или редактирования `Packages/manifest.json`: +Поддерживается установка в виде Unity-модуля в при помощи добавления git-URL [в PackageManager](https://docs.unity3d.com/2023.2/Documentation/Manual/upm-ui-giturl.html) или ручного добавления в `Packages/manifest.json`: ``` https://github.com/DCFApixels/DragonECS.git ``` @@ -32,12 +32,12 @@ https://github.com/DCFApixels/DragonECS.git # Основные концепции ## Сущность -Сущности - это идентификаторы, к которым крепятся данные. Есть 2 типа идентификатора: +Сущности - это то к чему крепятся данные. Реализованны в виде идентификаторов, которых есть 2 вида: * `int` - однократный идентификатор, применяется в пределах одного тика. Не рекомендуется хранить `int` идентификаторы, в место этого используйте `entlong`; * `entlong` - долговременный идентификатор, содержит в себе полный набор информации для однозначной идентификации; ## Компонент -Компоненты - это даные для сущностей. Могут быть тольно struct и обязаны реализовывать интерфейс IEcsComponent или другой указываюший вид компонента. +Компоненты - это данные для сущностей. Обязаны реализовывать интерфейс IEcsComponent или другой указываюший вид компонента. ```c# struct Health : IEcsComponent { @@ -46,9 +46,9 @@ struct Health : IEcsComponent } ``` ### Виды компонентов -* `IEcsComponent` - Компоненты с данными; -* `IEcsTagComponent` - Компоненты-теги. Без данных; -* `IEcsNotNullComponent` - Не нулевые компоненты. Содержатся на всех сущностях, не могут быть добавленыили удалены; +* `IEcsComponent` - Компоненты с данными. +* `IEcsTagComponent` - Компоненты-теги. Без данных. +* `IEcsNotNullComponent` - Не нулевые компоненты. Содержатся на всех сущностях, не могут быть добавлены или удалены; * `IEcsSingleComponent` - Компоненты-одиночки. Имеют только один экземпляр который можнжет быть добавлен или удален с сущности; ## Система @@ -110,8 +110,9 @@ public sealed class EcsRunRunner : EcsRunner, IEcsRunProcess * `EcsPool` - универсальный пул, хранит struct-компоненты реализующие интерфейс IEcsComponent; * `EcsTagPool` - подходит для хранения пустых компонентов-тегов, в сравнении с EcsPool имеет лучше оптимизацию памяти и дейсвий с пулом, хранит в себе struct-компоненты реализующие IEcsTagComponent; +Так же имеется возможность реализации пользовательского пула ## Субъект -Это классы которые используются как интерфейс для взаимодейсвия с сушностями. +Это классы наследуемые от EcsSubject, которые используются как посредник для взаимодейсвия с сушностями. ## Запросы Используйте метод-запрос `EcsWorld.Where(out TSubject subject)` для получения необходимого системе набора сущностей. Запросы работают в связке с субъектами, субъекты определяют ограничения запросов, результатом запроса становится группа сущностей удовлетворяющия условиям субъекта. По умолчанию запрос делает выборку из всех сущностей в мире, но так же можно сделать выборку из определенной группы сущностей, для этого используйте `EcsWorld.WhereFor(EcsReadonlyGroup sourceGroup, out TSubject subject)`