Update README-RU.md

This commit is contained in:
Mikhail 2023-06-10 17:51:51 +08:00 committed by GitHub
parent e828864ca8
commit 236b5c468a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -37,10 +37,12 @@
* [Группа](#Группа)
* [Субъект](#Субъект)
* [Запрос](#Запрос)
* [Модули](#Модули)
* [Корень ECS](#Корень-ECS)
* [Пример для Unity](#Пример-для-Unity)
* [Общий пример](#Общий-пример)
* [Debug](#Debug)
* [Debug-Атрибуты](#Debug-Атрибуты)
* [Debug-Сервис](#Debug-Сервис)
* [EcsDebug](#EcsDebug)
* [Расширения](#Расширения)
# Установка
@ -370,6 +372,101 @@ groupA.Inverse();
EcsGroup newGroup = EcsGroup.Inverse(groupA);
```
## Корень ECS
Это пользовательский класс который явялестя точкой входа для ECS. Основное назначение инициализация, запуск систем на каждый Update движка и очистка по окончанию сипользования.
### Пример для Unity
``` csharp
using DCFApixels.DragonECS;
using UnityEngine;
public class EcsRoot : MonoBehaviour
{
private EcsPipeline _pipeline;
private EcsDefaultWorld _world;
private void Start()
{
//Создание мира для сущностей икомпонентов
_world = new EcsDefaultWorld();
//Создание пайплайна длясистем
_pipeline = EcsPipeline.New()
// Добавление систем.
// .Add(new SomeSystem1())
// .Add(new SomeSystem2())
// .Add(new SomeSystem3())
// Внедрение мира в системы.
.Inject(_world)
// Прочие внедрения.
// .Inject(SomeData)
// Завершение построения пайплайна.
.Build();
//Иницивлизация пайплайна и запуск IEcsPreInitProcess.PreInit
//и IEcsInitProcess.Init у всех добавленных систем
_pipeline.Init();
}
private void Update()
{
//Запуск IEcsRunProcess.Run у всех добавленных систем
_pipeline.Run();
}
private void OnDestroy()
{
//Запускает IEcsDestroyInitProcess.Destroy у всех добавленных систем
_pipeline.Destroy();
//Обязательно удалять миры которые больше не будут использованы
_world.Destroy();
}
}
```
### Общий пример
``` csharp
using DCFApixels.DragonECS;
public class EcsRoot
{
private EcsPipeline _pipeline;
private EcsDefaultWorld _world;
// Инициализация окружения.
public void Init()
{
//Создание мира для сущностей икомпонентов.
_world = new EcsDefaultWorld();
//Создание пайплайна для систем.
_pipeline = EcsPipeline.New()
// Добавление систем.
// .Add(new SomeSystem1())
// .Add(new SomeSystem2())
// .Add(new SomeSystem3())
// Внедрение мира в системы.
.Inject(_world)
// Прочие внедрения.
// .Inject(SomeData)
// Завершение построения пайплайна.
.Build();
// Иницивлизация пайплайна и запуск IEcsPreInitProcess.PreInit
// и IEcsInitProcess.Init у всех добавленных систем.
_pipeline.Init();
}
// Update-цикл движка.
public void Update()
{
// Запуск IEcsRunProcess.Run у всех добавленных систем.
_pipeline.Run();
}
// Очистка окружения.
public void Destroy()
{
// Запускает IEcsDestroyInitProcess.Destroy у всех добавленных систем.
_pipeline.Destroy();
// Обязательно удалять миры которые больше не будут использованы.
_world.Destroy();
}
}
```
# Debug
Фреймворк предоставляет дополнительные инструменты для отладки и логирования, не зависящие от среды.
## Debug-Атрибуты