//-----对象池 public class MyPools : MonoBehaviour {
public static MyPools instance; static Queue<GameObject> Pool = new Queue<GameObject>(); void Start() { instance = this; } //------------------------(预制物,出生点位置,旋转,父物体) public GameObject Create(GameObject _prefabs, Vector3 _pos, Quaternion qua) { GameObject g = null; if (Pool.Count > 0) { g = Pool.Dequeue(); g.SetActive(true); g.transform.position = _pos; } else { g = Instantiate(_prefabs, _pos, qua); g.transform.SetParent(GameObject.FindGameObjectWithTag("Bullet").transform); } return g; } //(预制物,回到出生点位置,旋转) public static void Delete(GameObject _object, Vector3 _resoucesPos, Quaternion qua) { _object.SetActive(false); _object.transform.position = _resoucesPos; _object.transform.localRotation = qua; Pool.Enqueue(_object); } }