mirror of
https://github.com/DCFApixels/DragonECS-Unity.git
synced 2025-09-18 01:44:33 +08:00
Update README-RU.md
This commit is contained in:
parent
e8ad911291
commit
e9f61c4bf1
42
README-RU.md
42
README-RU.md
@ -297,8 +297,48 @@ connect.Disconnect();
|
||||
</br>
|
||||
|
||||
# World Provider
|
||||
`EcsWorldProvider` - это `ScriptableObject` обертка над `EcsWorld`, предназначенная для пробрасывания экземпляра мира и настройки через инспектор Unity. Для простых случаев достаточно будет использовать синглтон версию провайдера `EcsDefaultWorldSingletonProvider`.
|
||||
`EcsWorldProvider<TWorld>` - это `ScriptableObject` обертка над `TWorld`, предназначенная для пробрасывания экземпляра мира и настройки через инспектор Unity. Для простых случаев достаточно будет использовать синглтон версию провайдера `EcsDefaultWorldSingletonProvider`.
|
||||
|
||||
```c#
|
||||
// Синглтон провайдер создается автоматически в папке "Assets/Resource".
|
||||
EcsDefaultWorldSingletonProvider provider = EcsDefaultWorldSingletonProvider.Instance;
|
||||
// ...
|
||||
|
||||
EcsDefaultWorld world = new EcsDefaultWorld();
|
||||
// Устанавливаем экземпляр мира в провайдер.
|
||||
provider.Set(world);
|
||||
|
||||
// ...
|
||||
|
||||
//Получаем экземпляр мира, если провайдер был пуст, то он создаст новый мир.
|
||||
EcsDefaultWorld world = provider.Get();
|
||||
|
||||
EcsPipeline pipeline = EcsPipeline.New()
|
||||
//...
|
||||
// Внедряем в системы полученный из провайдера мир.
|
||||
.Inject(world)
|
||||
//...
|
||||
.BuildAndInit();
|
||||
```
|
||||
```c#
|
||||
//Пример создания своего провайдера для пробрасывания мира своего типа
|
||||
[CreateAssetMenu(fileName = nameof(EcsMyWorldProvider), menuName = EcsConsts.FRAMEWORK_NAME + "/WorldProviders/" + nameof(EcsMyWorldProvider), order = 1)]
|
||||
public class EcsMyWorldProvider : EcsWorldProvider<EcsMyWorld> { }
|
||||
|
||||
//Пример создания синглтон версии для мира своего типа
|
||||
public class EcsMyWorldSingletonProvider : EcsWorldProvider<EcsMyWorld>
|
||||
{
|
||||
private static EcsMyWorldSingletonProvider _instance;
|
||||
public static EcsMyWorldSingletonProvider Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null) { _instance = FindOrCreateSingleton<EcsMyWorldSingletonProvider>("SingletonMyWorld"); }
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Создать ассет провайдера: Asset > Create > DragonECS > WorldProviders > Выбрать тип мира.</summary>
|
||||
|
Loading…
Reference in New Issue
Block a user