创建对象池
public ObjectPool<GameObject> pool; //对象池
private void Awake() { pool = new ObjectPool<GameObject>( createFunc: () => { GameObject obj = Instantiate(Prefab); obj.transform.SetParent(transform, false); return obj; }, actionOnGet: (obj) => obj.SetActive(true), actionOnRelease: (obj) => obj.SetActive(false), actionOnDestroy: (obj) => Destroy(obj), true, 10, 1000); }
获取对象
GameObject obj = pool.Get();
释放对象
pool.Release(obj);
销毁对象池
pool.Destroy();//或者pool = null;