Update README-RU.md

This commit is contained in:
Mikhail 2023-05-30 18:10:59 +08:00 committed by GitHub
parent f9aaa9290a
commit 894b8a24b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,6 +12,10 @@
Данный [ECS](https://en.wikipedia.org/wiki/Entity_component_system) Фреймворк нацелен на максимальную удобность использования, модульность, расширяемость и производительность динамического изменения сущностей.
> **NOTICE:** Проект в стадии разработки. API может меняться.
## Languages
* [Русский](https://github.com/DCFApixels/DragonECS/blob/main/README-RU.md)
* [English(WIP)](https://github.com/DCFApixels/DragonECS)
## Оглавление
* [Установка](#Установка)
* [Unity-модуль](#Unity-модуль)
@ -27,6 +31,8 @@
* [Группа](#Группа)
* [Субъект](#Субъект)
* [Запрос](#Запрос)
* [Модули](#Модули)
* [Рекомендации](#Рекомендации)
* [Debug](#Debug)
* [Атрибуты](#Атрибуты)
* [EcsDebugUtility](#EcsDebugUtility)
@ -130,12 +136,40 @@ public sealed class EcsRunRunner : EcsRunner<IEcsRunProcess>, IEcsRunProcess
## Запросы
Используйте метод-запрос `EcsWorld.Where<TSubject>(out TSubject subject)` для получения необходимого системе набора сущностей. Запросы работают в связке с субъектами, субъекты определяют ограничения запросов, результатом запроса становится группа сущностей удовлетворяющия условиям субъекта. По умолчанию запрос делает выборку из всех сущностей в мире, но так же можно сделать выборку из определенной группы сущностей, для этого используйте `EcsWorld.WhereFor<TSubject>(EcsReadonlyGroup sourceGroup, out TSubject subject)`
## Модули
Группы систем реализующие общую фичу можно объединять в модули, и просто добавлять модули в Pipeline.
```csharp
using DCFApixels.DragonECS;
class Module : IEcsModule
{
public void Import(EcsPipeline.Builder b)
{
b.Add(new System1());
b.Add(new System2(), EcsConsts.END_LAYER);
b.Add(new System3());
}
}
```
```csharp
_pipeline = EcsPipeline.New()
...
.AddModule(new Module())
...
.BuildAndInit();
```
# Рекомендации
## Рекомендации по реаоизации систем
Системы делать максимально независимыми, без ссылок на другие системы.
# Debug
Фреймворк предоставляет дополнительные интрументы для отладки и логирования, не зависящие от среды.
## Атрибуты
В чистом виде атрибуты не имеют применения, но испольщуются в интеграциях с движками для задания отображения в отладочных интурментах и редакторах.
``` csharp
// Задает пользовательское название типа, по умолчанию используется имя типа.
using DCFApixels.DragonECS;
...
[DebugName("SomeComponent")]
// Задает цвет типа в системе rgb, где каждый канал принимает занчение от 0 до 255, по умолчанию белый.
// ВЫбрать цвет можно как вручную задав rgb значения, так и использовать заранее заготовленные цвета в enum DebugColor.
@ -149,8 +183,7 @@ public struct Component { }
## EcsDebugUtility
Имеет набор методов для упрощения получения данных из Debug-Aтрибутов.
## EcsDebug
Имеет набор методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы являются посредниками между системами отладки среды и EcsDebug. Это позволяет не изменяя отладочный код проекта, переносить его на другие движки, достаточно только реализовать специальный Debug-сервис.
Имеет набор методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы являются посредниками между системами отладки среды и EcsDebug. Это позволяет не изменяя отладочный код проекта, переносить его на другие движки, достаточно только реализовать специальный Debug-сервис.
По умолчанию используется `DefaultDebugService` который выводит логи в консоль. Для реализации пользовательского создайте класс наследуемый от `DebugService` и реализайте абстрактные члены класса.
# Расширения
* [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections)