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
ff98ae93c4
commit
ac9d534911
13
README.md
13
README.md
@ -9,12 +9,12 @@
|
||||
|
||||
# Основные концепции
|
||||
## Сущьность
|
||||
Сущьности - это идентификаторы, к которым крепятся данные. Есть2 вида идентификатора:
|
||||
Сущьности - это идентификаторы, к которым крепятся данные. Есть 2 типа идентификатора:
|
||||
* `int` - однократный идентификатор, применяется в пределах одного тика. Не рекомендуется хранить `int` идентификаторы, в место этого используйте `entlong`;
|
||||
* `entlong` - долговременный идентификатор, содержит в себе полный набор информации для однозначной идентификации;
|
||||
|
||||
## Компонент
|
||||
Компоненты - это даные для сущностей. Могут быть тольно struct и обязаны реализовывать интерфейс IEcsComponent или другой указываюший разновидность кмпонента.
|
||||
Компоненты - это даные для сущностей. Могут быть тольно struct и обязаны реализовывать интерфейс IEcsComponent или другой указываюший вид компонента.
|
||||
```c#
|
||||
struct Health : IEcsComponent
|
||||
{
|
||||
@ -22,6 +22,12 @@ struct Health : IEcsComponent
|
||||
public int armor;
|
||||
}
|
||||
```
|
||||
### Виды компонентов
|
||||
* `IEcsComponent` - Компоненты с данными;
|
||||
* `IEcsTagComponent` - Компоненты-теги. Без данных;
|
||||
* `IEcsNotNullComponent` - Не нулевые компоненты. Содержатся на всех сущностях, не могут быть добавленыили удалены;
|
||||
* `IEcsSingleComponent` - Компоненты-одиночки. Имеют только один экземпляр который можнжет быть добавлен или удален с сущности;
|
||||
|
||||
## Система
|
||||
Системы - это основная логика, тут задается поведение сущьностей. Существуют в виде пользовательских классов, реализующих как минимум один из IEcsInitProcess, IEcsDestroyProcess, IEcsRunProcess интерфейсов.
|
||||
```c#
|
||||
@ -39,8 +45,7 @@ class UserSystem : IEcsPreInitProcess, IEcsInitProcess, IEcsRunProcess, IEcsDest
|
||||
public void Destroy (EcsSession session) {
|
||||
// Будет вызван один раз в момент работы EcsSession.Destroy()
|
||||
}
|
||||
|
||||
//Для реализации дополнительных сообщений используйте Раннеры
|
||||
//Для реализации дополнительных процессов используйте Раннеры
|
||||
}
|
||||
```
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user