From 7a699c0d187f8de5a9b3bd670765e6d7d6b408fe Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Tue, 26 Mar 2024 16:20:38 +0800 Subject: [PATCH] Update README-RU.md --- README-RU.md | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/README-RU.md b/README-RU.md index 46c1558..9ba7df8 100644 --- a/README-RU.md +++ b/README-RU.md @@ -359,7 +359,24 @@ poses.Del(entityID); > эта функция будет описана в ближайшее время ## Аспект -Это пользовательские классы наследуемые от `EcsAspect`, которые используются как посредник для взаимодействия с сущностями. Аспекты одновременно являются кешем пулов и маской для фильтрации сущностей. +Это пользовательские классы наследуемые от `EcsAspect`, которые используются для взаимодействия с сущностями. Аспекты одновременно являются кешем пулов и маской для фильтрации сущностей. +Можно расматривать аспекты как описание того какие сущности нужны системе. +Упрощенный синтаксис: +``` c# +using DCFApixels.DragonECS; +... +class Aspect : EcsAspect +{ + // Кешируется пул и Pose добавляется во включающее ограничение. + public EcsPool poses = Inc; + // Кешируется пул и Velocity добавляется во включающее ограничение. + public EcsPool velocities = Inc; + // Кешируется пул и FreezedTag добавляется в исключающее ограничение. + public EcsTagPool freezedTags = Exc; +} +``` + +Явный синтаксис (результат идентичен примеру выше): ``` c# using DCFApixels.DragonECS; ... @@ -367,38 +384,16 @@ class Aspect : EcsAspect { public EcsPool poses; public EcsPool velocities; - - // вместо конструктора можно использовать виртуальную функцию Init(Builder b) - public Aspect(Builder b) + // вместо виртуальной функции, можно использовать конструктор Aspect(Builder b) + protected override void Init(Builder b) { - // кешируется пул и Pose добавляется во включающее ограничение. poses = b.Include(); - - // кешируется пул и Velocity добавляется во включающее ограничение. velocities = b.Include(); - - // FreezedTag добавляется в исключающее ограничение. b.Exclude(); } } ``` -Упрощенный синтаксис. Пример ниже, это аналог примера выше -``` c# -using DCFApixels.DragonECS; -... -class Aspect : EcsAspect -{ - public EcsPool poses; - public EcsPool velocities; - public EcsTagPool freezedTags; - public Aspect(Builder b) - { - poses = b.Inc; - velocities = b.Inc; - freezedTags = b.Exc; - } -} -``` + В аспекты можно добавлять другие аспекты, тем самым комбинируя их. Ограничения так же будут скомбинированы ``` c# using DCFApixels.DragonECS;