mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 01:44:35 +08:00
Update README.md
This commit is contained in:
parent
1e34dc2acd
commit
aff4b12bf1
15
README.md
15
README.md
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
# Установка
|
# Установка
|
||||||
* ### Unity-модуль
|
* ### 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
|
https://github.com/DCFApixels/DragonECS.git
|
||||||
```
|
```
|
||||||
@ -32,12 +32,12 @@ https://github.com/DCFApixels/DragonECS.git
|
|||||||
|
|
||||||
# Основные концепции
|
# Основные концепции
|
||||||
## Сущность
|
## Сущность
|
||||||
Сущности - это идентификаторы, к которым крепятся данные. Есть 2 типа идентификатора:
|
Сущности - это то к чему крепятся данные. Реализованны в виде идентификаторов, которых есть 2 вида:
|
||||||
* `int` - однократный идентификатор, применяется в пределах одного тика. Не рекомендуется хранить `int` идентификаторы, в место этого используйте `entlong`;
|
* `int` - однократный идентификатор, применяется в пределах одного тика. Не рекомендуется хранить `int` идентификаторы, в место этого используйте `entlong`;
|
||||||
* `entlong` - долговременный идентификатор, содержит в себе полный набор информации для однозначной идентификации;
|
* `entlong` - долговременный идентификатор, содержит в себе полный набор информации для однозначной идентификации;
|
||||||
|
|
||||||
## Компонент
|
## Компонент
|
||||||
Компоненты - это даные для сущностей. Могут быть тольно struct и обязаны реализовывать интерфейс IEcsComponent или другой указываюший вид компонента.
|
Компоненты - это данные для сущностей. Обязаны реализовывать интерфейс IEcsComponent или другой указываюший вид компонента.
|
||||||
```c#
|
```c#
|
||||||
struct Health : IEcsComponent
|
struct Health : IEcsComponent
|
||||||
{
|
{
|
||||||
@ -46,9 +46,9 @@ struct Health : IEcsComponent
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
### Виды компонентов
|
### Виды компонентов
|
||||||
* `IEcsComponent` - Компоненты с данными;
|
* `IEcsComponent` - Компоненты с данными.
|
||||||
* `IEcsTagComponent` - Компоненты-теги. Без данных;
|
* `IEcsTagComponent` - Компоненты-теги. Без данных.
|
||||||
* `IEcsNotNullComponent` - Не нулевые компоненты. Содержатся на всех сущностях, не могут быть добавленыили удалены;
|
* `IEcsNotNullComponent` - Не нулевые компоненты. Содержатся на всех сущностях, не могут быть добавлены или удалены;
|
||||||
* `IEcsSingleComponent` - Компоненты-одиночки. Имеют только один экземпляр который можнжет быть добавлен или удален с сущности;
|
* `IEcsSingleComponent` - Компоненты-одиночки. Имеют только один экземпляр который можнжет быть добавлен или удален с сущности;
|
||||||
|
|
||||||
## Система
|
## Система
|
||||||
@ -110,8 +110,9 @@ public sealed class EcsRunRunner : EcsRunner<IEcsRunProcess>, IEcsRunProcess
|
|||||||
* `EcsPool` - универсальный пул, хранит struct-компоненты реализующие интерфейс IEcsComponent;
|
* `EcsPool` - универсальный пул, хранит struct-компоненты реализующие интерфейс IEcsComponent;
|
||||||
* `EcsTagPool` - подходит для хранения пустых компонентов-тегов, в сравнении с EcsPool имеет лучше оптимизацию памяти и дейсвий с пулом, хранит в себе struct-компоненты реализующие IEcsTagComponent;
|
* `EcsTagPool` - подходит для хранения пустых компонентов-тегов, в сравнении с EcsPool имеет лучше оптимизацию памяти и дейсвий с пулом, хранит в себе struct-компоненты реализующие IEcsTagComponent;
|
||||||
|
|
||||||
|
Так же имеется возможность реализации пользовательского пула
|
||||||
## Субъект
|
## Субъект
|
||||||
Это классы которые используются как интерфейс для взаимодейсвия с сушностями.
|
Это классы наследуемые от EcsSubject, которые используются как посредник для взаимодейсвия с сушностями.
|
||||||
|
|
||||||
## Запросы
|
## Запросы
|
||||||
Используйте метод-запрос `EcsWorld.Where<TSubject>(out TSubject subject)` для получения необходимого системе набора сущностей. Запросы работают в связке с субъектами, субъекты определяют ограничения запросов, результатом запроса становится группа сущностей удовлетворяющия условиям субъекта. По умолчанию запрос делает выборку из всех сущностей в мире, но так же можно сделать выборку из определенной группы сущностей, для этого используйте `EcsWorld.WhereFor<TSubject>(EcsReadonlyGroup sourceGroup, out TSubject subject)`
|
Используйте метод-запрос `EcsWorld.Where<TSubject>(out TSubject subject)` для получения необходимого системе набора сущностей. Запросы работают в связке с субъектами, субъекты определяют ограничения запросов, результатом запроса становится группа сущностей удовлетворяющия условиям субъекта. По умолчанию запрос делает выборку из всех сущностей в мире, но так же можно сделать выборку из определенной группы сущностей, для этого используйте `EcsWorld.WhereFor<TSubject>(EcsReadonlyGroup sourceGroup, out TSubject subject)`
|
||||||
|
Loading…
Reference in New Issue
Block a user