Object Pooling reuses objects instead of constantly creating and destroying them.

Typical uses:

Basic idea:

objectToReuse.SetActive(true);

Return:

objectToReuse.SetActive(false);

Unity also provides pooling APIs through:

using UnityEngine.Pool;