Creating and destroying many items over a short period of time can cause serious performance issues that can create a bad experience for your players. A common solution to managing and reusing objects in your game is called object pooling. Object pooling is a pattern that reuses a set of pre-created objects in place of on demand creation and destruction. An object is first requested from the pool and if an available one is present it is used. When one is not available the pool can optionally create a new instance, adding it to the pool for later use, and provide that instance instead. When the object is done being used in your scene and would normally be destroyed it is instead returned to the pool and deactivated so that it can be reused the next time an instance is needed.
This package provides an easy to use mechanism for using object pooling in your game, which can be a huge difference in the performance of your game, especially when dealing with mobile hardware.
Demo
Documentation