View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0
- Last updated
- First released
- Unity version
- 2021.3.25 or later
- Package size
- 81 KB
- Files
- 11
- Favorites
- 38
- Views in the past week
- 5
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- Free on
Keywords
UniPool - Advanced Universal Prefab Pooling
Blazingly fast, and simple to use, advanced prefab pooling solution.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 2
UniPool - Advanced Universal Prefab Pooling screenshot 1
About this asset
UniPool - Advanced Universal Prefab Pooling
provides a way to pool all kinds of prefabs into a single universal pool.
This allows to pool prefabs without dependencies, with a natural workflow, similar to Instantiate and Destroy.
Optimizations:
UniPool uses PoolCell object to cache GameObject, Transform
In addition, you may specify one Component type, located on prefab or in children, to be cached as well (including interface type).
This is so you can avoid unnecessary (costly at scale) calls to .GetComponent; .gameObject; transform;
Use features:
Get - get object from pool,
with or without prior registration (can be fully dynamic)
Registration - may choose to register a prefab before use (by prefab or string name)
Fill - can instantiate an amount of prefabs to pool
Release - releases object back to pool. Release can be done by passing a reference, any of: PoolCell, GameObject, Transform, Component.
UGUI object pooling - Pooling works for regular 3D objects and UI objects alike.
Custom container - can specify what object to use as a pool container for each particular prefab
Example code:
PoolCell cell = UniPool.Get(prefab);
PoolCell cell = UniPool.Get("registeredName");
PoolCell cell = UniPool.Get<T>(prefab);
cell.gameObject; // cached gameObject
cell.transform; // cached transform
cell.GetComponent<T>(); // retrieves cached component reference
// Plain prefab.
UniPool.Register(prefab);
// Prefab with component caching of specified type T
// attach string name, that can be used to Get("prefab") via string name
UniPool.Register<T>(prefab, "prefab");
// Release by passing any of: PoolCell, Transform, GameObject, Component
UniPool.Release(transform);
From the publisher's Asset Store listing.
Technical details
UniPool - Advanced Universal Prefab Pooling
provides a way to pool all kinds of prefabs into a single universal pool.
This allows to pool prefabs without dependancies, with a natural workflow, similar to Instantiate and Destroy.
Optimizations:
UniPool uses PoolCell object to cache GameObject, Transform
In addition, you may specify one Component type, located on prefab or in children, to be cached as well (including interface type).
This is so you can avoid unnecessary (costly at scale) calls to .GetComponent; .gameObject; transform;
Use features:
Get - get object from pool
with or without prior registration (can be fully dynamic).
Registration - may choose to register a prefab before use (by prefab or string name).
Fill - can instantiate an amount of prefabs to pool.
Release - releases object back to pool. Release can be done by passing a reference of: PoolCell, GameObject, Transform, Component.
Compatibility
| Unity version | Built-in | URP | HDRP | Custom |
|---|---|---|---|---|
| 2021.3.25f1 | Compatible | Compatible | Compatible | Compatible |
As listed on the Asset Store.