/unity3d-prefab-pool

Simple Prefab Pool for Unity3D

Primary LanguageC#

Description outdated - will be updated soon ! unity3d-prefab-pool

Simple Prefab Pool for Unity3D

Summary: This project provides a simple implementation for pool of prefabs to avoid performance issues with runtime prefab instantiation.

The project contains an example of usage. You can also read about simple prefab pool from my blog post on blogger.


The usage is extremely simple. First you create an instance of PrefabPool (there are overloaded constructors for flexibility). The constructor with all parameters:

Creating the pool

	// Create pool of cubes containing instantiated cubePrefabs
	PrefabPool cubesPool = 
		new PrefabPool(cubePrefab, parent, initialPoolSize, growth, maxPoolSize);

This is the code that creates a pool of cubePrefab transform objects, instantiates initialPoolSize number of them (items are inactive after instantiation). If there is a need to instantiate more prefabs they will be batch instantiated growth number at a time. You can also limit the size of your pool by specifying maxPoolSize.

Now the only methods you should care about are ObtainPrefab and RecyclePrefab. When you obtain prefab from the pool it is set to be active and you specify its new position, rotation and scale.

Obtaining instantiated prefab from the pool

Transform retrievedCubeInstance1 = cubesPool.ObtainPrefabInstance(newParent.gameObject); 

Recycling active instantiated prefab

cubesPool.RecyclePrefab(retrievedCubeInstance1);