Update README-RU.md

This commit is contained in:
Mikhail 2024-03-26 16:20:38 +08:00
parent 8920dbb5e5
commit 7a699c0d18

View File

@ -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;