Update README-RU.md

This commit is contained in:
Mikhail 2023-06-01 16:17:18 +08:00 committed by GitHub
parent b0189afa77
commit 4bb7a10157
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,7 +39,7 @@
* [Запрос](#Запрос) * [Запрос](#Запрос)
* [Модули](#Модули) * [Модули](#Модули)
* [Debug](#Debug) * [Debug](#Debug)
* [Атрибуты](#Атрибуты) * [Debug-Атрибуты](#Debug-Атрибуты)
* [Debug-Сервис](#Debug-Сервис) * [Debug-Сервис](#Debug-Сервис)
* [Расширения](#Расширения) * [Расширения](#Расширения)
@ -252,35 +252,59 @@ WorldComponent component = _world.Get<WorldComponent>();
> эта функция будет описана в ближайшее время > эта функция будет описана в ближайшее время
## Субъект ## Субъект
Это классы наследуемые от EcsSubject, которые используются как посредник для взаимодействия с сущностями. Это классы наследуемые от EcsSubject, которые используются как посредник для взаимодействия с сущностями. Субъекты ондовременно являются кешем пулов и ограничением для запросов сущностей.
``` csharp
using DCFApixels.DragonECS;
...
class Subject : EcsSubject
{
public EcsPool<Pose> poses;
public EcsPool<Velocity> velocities;
// вместо конструктора можно использовать виртуальную функцию Init(Builder b)
public Subject(Builder b)
{
// кешируется пул и Pose добавляется во включающее ограничение.
poses = b.Include<Pose>();
// кешируется пул и Velocity добавляется во включающее ограничение.
velocities = b.Include<Velocity>();
// FreezedTag добавляется в исключающее ограничение.
b.Exclude<FreezedTag>();
}
}
```
## Запросы ## Запросы
Используйте метод-запрос `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)`
## Группа ## Группа
Группы это структуры данных для хранения списка сущностей и с быстрыми операциями добавления/удаления/проверки наличия и т.д. Реализованы классом `EcsGroup` и структурой `EcsReadonlyGroup`. Группы это структуры данных для хранения множества сущностей и с быстрыми операциями добавления/удаления/проверки наличия и т.д. Реализованы классом `EcsGroup` и структурой `EcsReadonlyGroup`.
Группы могут использоваться для реактивной фильтрации сущностей
# Debug # Debug
Фреймворк предоставляет дополнительные инструменты для отладки и логирования, не зависящие от среды. Фреймворк предоставляет дополнительные инструменты для отладки и логирования, не зависящие от среды.
## Атрибуты ## Debug-Атрибуты
В чистом виде атрибуты не имеют применения, но используются в интеграциях с движками для задания отображения в отладочных инструментах и редакторах. В чистом виде дебаг-атрибуты не имеют применения, но используются в интеграциях с движками для задания отображения в отладочных инструментах и редакторах.
``` c# ``` c#
// Задает пользовательское название типа, по умолчанию используется имя типа.
using DCFApixels.DragonECS; using DCFApixels.DragonECS;
...
// Задает пользовательское название типа, по умолчанию используется имя типа.
[DebugName("SomeComponent")] [DebugName("SomeComponent")]
// Задает цвет типа в системе rgb, где каждый канал принимает значение от 0 до 255, по умолчанию белый. // Задает цвет типа в системе rgb, где каждый канал принимает значение от 0 до 255, по умолчанию белый.
// Выбрать цвет можно как вручную задав rgb значения, так и использовать заранее заготовленные цвета в enum DebugColor. [DebugColor(DebugColor.Red)] // или [DebugColor(255, 0, 0)]
[DebugColor(DebugColor.Red)]
// Добавляет описание типу. // Добавляет описание типу.
[DebugDescription("The quick brown fox jumps over the lazy dog")] [DebugDescription("The quick brown fox jumps over the lazy dog")]
// Скрывает тип. // Скрывает тип.
[DebugHide] [DebugHide]
public struct Component { } public struct Component { }
``` ```
## EcsDebug ## EcsDebug
Имеет набор методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы являются посредниками между системами отладки среды и EcsDebug. Это позволяет не изменяя отладочный код проекта, переносить его на другие движки, достаточно только реализовать специальный Debug-сервис. Имеет набор методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы являются посредниками между системами отладки среды и EcsDebug. Это позволяет не изменяя отладочный код проекта, переносить его на другие движки, достаточно только реализовать специальный Debug-сервис.
По умолчанию используется `DefaultDebugService` который выводит логи в консоль. Для реализации пользовательского создайте класс наследуемый от `DebugService` и реализуйте абстрактные члены класса. По умолчанию используется `DefaultDebugService` который выводит логи в консоль. Для реализации пользовательского создайте класс наследуемый от `DebugService` и реализуйте абстрактные члены класса.
# Расширения # Расширения
* [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections) * [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections)