using UnityEngine; public abstract class PoolingObject : MonoBehaviour where T : PoolingObject { public BasePool OwningPool { protected get; set; } public void ReturnToPool() { OwningPool.ReturnToPool(this as T); } }