GameObject Pooler is a scripting plugin for Unity that implements a
flexible and easy to use object pool.
Object pooling is essential for performance as it avoids the costly
Instantiate and Destroy functions and the associated garbage that is
generated which causes the garbage collector to kick in.
The Pool is simple to use, just replace your calls to Instantiate with
Pool.Borrow and your calls to Destroy with Pool.Return.
Set up the items in your pool either in the editor or through code at
runtime. This way you can have different items in your pool for example
for each level.
Includes the possibility for logging the usage of each pool item, so that you can fine-tune the number of items in your pool.
User Guide | API Reference