Update README-RU.md

This commit is contained in:
Mikhail 2024-03-07 08:43:57 +08:00
parent d038e2e8be
commit 9571a29862

View File

@ -645,7 +645,7 @@ using (marker.Auto())
Для большей расширемости фреймворкеа есть дополнительные инструменты. Для большей расширемости фреймворкеа есть дополнительные инструменты.
## Конфиги ## Конфиги
Конструкторы классов `EcsWorld` и `EcsPipeline` могут принимать контейнеры конфигов реализующие интерфейс `IConfigContainer` или `IConfigContainerWriter`. С помощью этих контейнеров можно передавать данные и зависимости. Встроенная реализация контейнера - `ConfigContainer`</br> Конструкторы классов `EcsWorld` и `EcsPipeline` могут принимать контейнеры конфигов реализующие интерфейс `IConfigContainer` или `IConfigContainerWriter`. С помощью этих контейнеров можно передавать данные и зависимости. Встроенная реализация контейнера - `ConfigContainer`, но можно так же использовать свою реализацию.</br>
Пример использования конфигов для мира: Пример использования конфигов для мира:
``` c# ``` c#
var configs = new ConfigContainer() var configs = new ConfigContainer()
@ -653,6 +653,9 @@ var configs = new ConfigContainer()
.Set(new SomeDataA(/* ... */)) .Set(new SomeDataA(/* ... */))
.Set(new SomeDataB(/* ... */))); .Set(new SomeDataB(/* ... */)));
EcsDefaultWorld _world = new EcsDefaultWorld(configs); EcsDefaultWorld _world = new EcsDefaultWorld(configs);
//...
var _someDataA = _world.Configs.Get<SomeDataA>();
var _someDataB = _world.Configs.Get<SomeDataB>();
``` ```
Пример использования конфигов для пайплайна: Пример использования конфигов для пайплайна:
``` c# ``` c#
@ -663,11 +666,13 @@ _pipeline = EcsPipeline.New()// аналогично _pipeline = EcsPipeline.New
.BuildAndInit(); .BuildAndInit();
//... //...
var _someDataA = _pipeline.Configs.Get<SomeDataA>(); var _someDataA = _pipeline.Configs.Get<SomeDataA>();
var _someDataB = _pipeline.Configs.Get<SomeDataB>();
``` ```
## Компоненты Миры ## Компоненты Миры
С помощью компонентов можно прикреплять дополнительные данные к мирам. В качестве компонентов используются `struct` типы. С помощью компонентов можно прикреплять дополнительные данные к мирам. В качестве компонентов используются `struct` типы. Доступ к компонентам через `Get` оптимизирован, скорость почти такая же как доступ к полям класса.
``` c# ``` c#
// Получить компонент.
ref WorldComponent component = ref _world.Get<WorldComponent>(); ref WorldComponent component = ref _world.Get<WorldComponent>();
``` ```
Реализация компонента: Реализация компонента:
@ -684,7 +689,7 @@ public struct WorldComponent : IEcsWorldComponent<WorldComponent>
// Данные. // Данные.
void IEcsWorldComponent<WorldComponent>.Init(ref WorldComponent component, EcsWorld world) void IEcsWorldComponent<WorldComponent>.Init(ref WorldComponent component, EcsWorld world)
{ {
// Действия при инициализации компонента. Вызывается до первого возвращения из EcsWorld.Get // Действия при инициализации компонента. Вызывается до первого возвращения из EcsWorld.Get .
} }
void IEcsWorldComponent<WorldComponent>.OnDestroy(ref WorldComponent component, EcsWorld world) void IEcsWorldComponent<WorldComponent>.OnDestroy(ref WorldComponent component, EcsWorld world)
{ {