mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 09:54:35 +08:00
Update README-RU.md
This commit is contained in:
parent
8920dbb5e5
commit
7a699c0d18
47
README-RU.md
47
README-RU.md
@ -359,7 +359,24 @@ poses.Del(entityID);
|
|||||||
> эта функция будет описана в ближайшее время
|
> эта функция будет описана в ближайшее время
|
||||||
|
|
||||||
## Аспект
|
## Аспект
|
||||||
Это пользовательские классы наследуемые от `EcsAspect`, которые используются как посредник для взаимодействия с сущностями. Аспекты одновременно являются кешем пулов и маской для фильтрации сущностей.
|
Это пользовательские классы наследуемые от `EcsAspect`, которые используются для взаимодействия с сущностями. Аспекты одновременно являются кешем пулов и маской для фильтрации сущностей.
|
||||||
|
Можно расматривать аспекты как описание того какие сущности нужны системе.
|
||||||
|
Упрощенный синтаксис:
|
||||||
|
``` c#
|
||||||
|
using DCFApixels.DragonECS;
|
||||||
|
...
|
||||||
|
class Aspect : EcsAspect
|
||||||
|
{
|
||||||
|
// Кешируется пул и Pose добавляется во включающее ограничение.
|
||||||
|
public EcsPool<Pose> poses = Inc;
|
||||||
|
// Кешируется пул и Velocity добавляется во включающее ограничение.
|
||||||
|
public EcsPool<Velocity> velocities = Inc;
|
||||||
|
// Кешируется пул и FreezedTag добавляется в исключающее ограничение.
|
||||||
|
public EcsTagPool<FreezedTag> freezedTags = Exc;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Явный синтаксис (результат идентичен примеру выше):
|
||||||
``` c#
|
``` c#
|
||||||
using DCFApixels.DragonECS;
|
using DCFApixels.DragonECS;
|
||||||
...
|
...
|
||||||
@ -367,38 +384,16 @@ class Aspect : EcsAspect
|
|||||||
{
|
{
|
||||||
public EcsPool<Pose> poses;
|
public EcsPool<Pose> poses;
|
||||||
public EcsPool<Velocity> velocities;
|
public EcsPool<Velocity> velocities;
|
||||||
|
// вместо виртуальной функции, можно использовать конструктор Aspect(Builder b)
|
||||||
// вместо конструктора можно использовать виртуальную функцию Init(Builder b)
|
protected override void Init(Builder b)
|
||||||
public Aspect(Builder b)
|
|
||||||
{
|
{
|
||||||
// кешируется пул и Pose добавляется во включающее ограничение.
|
|
||||||
poses = b.Include<Pose>();
|
poses = b.Include<Pose>();
|
||||||
|
|
||||||
// кешируется пул и Velocity добавляется во включающее ограничение.
|
|
||||||
velocities = b.Include<Velocity>();
|
velocities = b.Include<Velocity>();
|
||||||
|
|
||||||
// FreezedTag добавляется в исключающее ограничение.
|
|
||||||
b.Exclude<FreezedTag>();
|
b.Exclude<FreezedTag>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Упрощенный синтаксис. Пример ниже, это аналог примера выше
|
|
||||||
``` c#
|
|
||||||
using DCFApixels.DragonECS;
|
|
||||||
...
|
|
||||||
class Aspect : EcsAspect
|
|
||||||
{
|
|
||||||
public EcsPool<Pose> poses;
|
|
||||||
public EcsPool<Velocity> velocities;
|
|
||||||
public EcsTagPool<FreezedTag> freezedTags;
|
|
||||||
public Aspect(Builder b)
|
|
||||||
{
|
|
||||||
poses = b.Inc;
|
|
||||||
velocities = b.Inc;
|
|
||||||
freezedTags = b.Exc;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
В аспекты можно добавлять другие аспекты, тем самым комбинируя их. Ограничения так же будут скомбинированы
|
В аспекты можно добавлять другие аспекты, тем самым комбинируя их. Ограничения так же будут скомбинированы
|
||||||
``` c#
|
``` c#
|
||||||
using DCFApixels.DragonECS;
|
using DCFApixels.DragonECS;
|
||||||
|
Loading…
Reference in New Issue
Block a user