Rossoforge-Pool
A lightweight object pooling system for Unity, designed for performance-critical applications. Includes support for data-driven configuration via ScriptableObjects, runtime instantiation, and integration with a global service locator. Ideal for reducing GC allocations and improving scene performance in games with frequent object spawning.
com.rossogames.rossoforge-pool 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/rossoforge-pool.git README Markdown
Copy this to your project's README.md
## Installation
Add **Rossoforge-Pool** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/rossoforge-pool.git
```
[](https://www.pkglnk.dev/pkg/rossoforge-pool)README
Rosso Games
![]() |
Rossoforge - Pool |
Rossoforge-pool A lightweight object pooling system for Unity, designed for performance-critical applications. Includes support for data-driven configuration via ScriptableObjects, runtime instantiation, and integration with a global service locator. Ideal for reducing GC allocations and improving scene performance in games with frequent object spawning.
Version: Unity 6 or higher
Tutorial: https://www.youtube.com/watch?v=0S3NYG8uiQ0 (Spanish)
Dependencies:
- com.unity.addressables
- Rossoforge-Core
- Rossoforge-Utils
- Rossoforge-Service
- Rossoforge-Addressables (Optional)
// Initialize Service default
private void Awake()
{
ServiceLocator.SetLocator(new DefaultServiceLocator());
var poolService = new PoolService();
ServiceLocator.Register<IPoolService>(poolService);
ServiceLocator.Initialize();
}
// Initialize Service with addressables
private void Awake()
{
ServiceLocator.SetLocator(new DefaultServiceLocator());
var addressableService = new AddressableService();
var poolService = new PoolService();
ServiceLocator.Register<IAddressableService>(addressableService);
ServiceLocator.Register<IPoolService>(poolService);
ServiceLocator.Initialize();
}
// Get the gameobject from the pool
_poolService.Get(_missilePoolData, transform.parent, transform.position, Space.World);
_poolService.GetAsync(_missilePoolData, transform.parent, transform.position, Space.World);
// Get the gameobject's component from the pool
_poolService.Get<Missile>(_missilePoolData, transform.parent, transform.position, Space.World);
_poolService.GetAsync<Missile>(_missilePoolData, transform.parent, transform.position, Space.World);
// Preload pool
_poolService.Populate(_missilePoolData);
_poolService.PopulateAsync(_missilePoolData);
This package is part of the Rossoforge suite, designed to streamline and enhance Unity development workflows.
Developed by Agustin Rosso https://www.linkedin.com/in/rossoagustin/

No comments yet. Be the first!