From 3d717b4db3541218026b46fc0766bd5ba49f1eb8 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Tue, 30 May 2023 17:31:34 +0800 Subject: [PATCH] Update README-RU.md --- README-RU.md | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/README-RU.md b/README-RU.md index 8219125..2d09c56 100644 --- a/README-RU.md +++ b/README-RU.md @@ -23,7 +23,7 @@ * [Концепции фреймворка](#Концепции-фреймворка) * [Pipeline](#Pipeline) * [Процесс](#Процесс) - * [World](#World) + * [Мир](#Мир) * [Группа](#Группа) * [Субъект](#Субъект) * [Запрос](#Запрос) @@ -85,7 +85,7 @@ class UserSystem : IEcsPreInitProcess, IEcsInitProcess, IEcsRunProcess, IEcsDest ## Pipeline Класс EcsPipeline является контейнером и двжиком систем, определяя поочередность их вызова, предоставляющий механизм для сообщений между системами и механизм внедрения зависимостей в системы. -## Process +## Процесс Процессы - это очереди систем реализующие общий интерфейс, например IEcsRunProcess. Для запуска процессов используются Runner-ы. Система ранеров и процессов может использоваться для создания реактивного поведения или для управления очередью вызова систем. Встроенные процессы вызываются автоматически, для ручного запуска испольщуйте раннеры получаемые из EcsPipeline.GetRunner(). > Метод GetRunner относительно медленный, поэтому рекомендуется кешировать полученные раннеры. @@ -112,7 +112,7 @@ public sealed class EcsRunRunner : EcsRunner, IEcsRunProcess > * Наследуемый класс `EcsRunner,` в качестве `TInterface` должен принимать реализованный интерфейс; > * Раннер не может быть размещен внутри другого класса. -## World +## Мир Является контейнером для сущностей и компонентов. ## Группа @@ -131,18 +131,27 @@ public sealed class EcsRunRunner : EcsRunner, IEcsRunProcess Используйте метод-запрос `EcsWorld.Where(out TSubject subject)` для получения необходимого системе набора сущностей. Запросы работают в связке с субъектами, субъекты определяют ограничения запросов, результатом запроса становится группа сущностей удовлетворяющия условиям субъекта. По умолчанию запрос делает выборку из всех сущностей в мире, но так же можно сделать выборку из определенной группы сущностей, для этого используйте `EcsWorld.WhereFor(EcsReadonlyGroup sourceGroup, out TSubject subject)` # Debug -Фреймворк предоставляет дополнительные интрументы для отладки и логирования. +Фреймворк предоставляет дополнительные интрументы для отладки и логирования, не зависящие от среды. ## Атрибуты -В чистом виде атрибуты не имеют применения, но будут использоваться в интеграциях с движками для задания отображения в отладочных интурментах и редакторах. -* `DebugNameAttribute` - Задает пользовательское название типа, по умолчанию используется имя типа. -* `DebugColorAttribute` - Задает цвет типа в системе rgb, где каждый канал принимает занчение от 0 до 255, по умолчанию белый. Задать цвет можно как вручную, так и использовать заранее заготовленные цвета в enum DebugColor. -* `DebugDescriptionAttribute` - Добавляет описание типу. -* `DebugHideAttribute` - Скрывает тип. +В чистом виде атрибуты не имеют применения, но испольщуются в интеграциях с движками для задания отображения в отладочных интурментах и редакторах. +``` csharp +// Задает пользовательское название типа, по умолчанию используется имя типа. +[DebugName("SomeComponent")] +// Задает цвет типа в системе rgb, где каждый канал принимает занчение от 0 до 255, по умолчанию белый. +// ВЫбрать цвет можно как вручную задав rgb значения, так и использовать заранее заготовленные цвета в enum DebugColor. +[DebugColor(DebugColor.Red)] +// Добавляет описание типу. +[DebugDescription("The quick brown fox jumps over the lazy dog")] +// Скрывает тип. +[DebugHide] +public struct Component { } +``` ## EcsDebugUtility -Статические класс EcsDebugUtility имеет набор методов для упрощения получения данных из Debug-Aтрибутов. +Имеет набор методов для упрощения получения данных из Debug-Aтрибутов. ## EcsDebug -EcsDebug Содержит в себе - +Имеет набор методов для отладки и логирования. Реализован как статический класс вызывающий методы Debug-сервисов. Debug-сервисы являются посредниками между системами отладки среды и EcsDebug. Это позволяет не изменяя отладочный код проекта, переносить его на другие движки, достаточно только реализовать специальный Debug-сервис. + +По умолчанию используется `DefaultDebugService` который выводит логи в консоль. Для реализации пользовательского создайте класс наследуемый от `DebugService` и реализайте абстрактные члены класса. # Расширения * [Автоматическое внедрение зависимостей](https://github.com/DCFApixels/DragonECS-AutoInjections) * Интеграция с движком Unity (Work in progress)