This is the 4th part of the runtime foliage generation system we are working on our infinite world system. Here, we will implementing object pooling pattern for multiple foliage types we have in our generated world. This means, in order to keep an infinite world, as the player navigate through the world, further landscape tiles will be removed and new tiles will be added closer to the player. So, when this happens, we need to add new foliage instances of too. But in pooling pattern, instead of adding new instances, we will relocate the instances of foliage that were in removed landscape tiles in newly generated tiles. This is better for performance of the game.