mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-11-13 00:55:55 +08:00
Update README-RU.md
This commit is contained in:
parent
b0189afa77
commit
4bb7a10157
44
README-RU.md
44
README-RU.md
@ -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)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user