mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-17 17:34:36 +08:00
Merge branch 'main' into dev
This commit is contained in:
commit
51452fe90d
@ -449,14 +449,15 @@ poses.Del(entityID);
|
||||
Пулом выступает любой тип реализующий интерфейс `IEcsPoolImplementation<T>` и имеющий конструктор без параметров.
|
||||
|
||||
Ключевые моменты при реализации пула:
|
||||
* Все методы предоставляемые интерфейсом `IEcsPoolImplementation` не предназначены для публичного использования, рекомендуется реализовывать явно.
|
||||
* За примером реализации пула можно обратиться к реализации встроенного пула `EcsPool<T>`.
|
||||
* Интерфейс `IEcsPoolImplementation` и его члены не предназначены для публичного использования, члены интерфейса рекомендуется реализовывать явно.
|
||||
* Подставленный в интерфейсе `IEcsPoolImplementation<T>` тип `T` и тип возвращаемый в свойствах `ComponentType` с `ComponentTypeID` должны совпадать.
|
||||
* Обязательно регистрировать все изменения пула в экземпляре `EcsWorld.PoolsMediator` передаваемом в методе `OnInit`.
|
||||
* `EcsWorld.PoolsMediator` предназначен только для использования внутри пула.
|
||||
* Дефайн `DISABLE_POOLS_EVENTS` отключает реализуемые методы `AddListener` и `RemoveListener`.
|
||||
* В статическом классе `EcsPoolThrowHelper` определены бросания наиболее распространенных видов исключений.
|
||||
* В методе `OnReleaseDelEntityBuffer` происходит очистка удаленных сущностей.
|
||||
|
||||
* Рекомендуется определить интерфейс которым обозначаются компоненты для нового пула. На основе этого интерфейса можно реализовать методы расширения вроде `GetPool<T>()` для упрощенного доступа к пулам.
|
||||
|
||||
</details>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user