using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectPool : MonoBehaviour {
public static ObjectPool instance;
Stack<GameObject> pool = new Stack<GameObject>();
void Start () {
instance = this;
}
public void Delete(GameObject g)
{
g.SetActive(false);
pool.Push(g);
}
public GameObject Creat(GameObject prefab, Vector3 position, Quaternion qua)
{
GameObject g=null;
if (pool.Count>0)
{
g=pool.Pop();
g.SetActive(true);
g.transform.position = position;
g.transform.rotation = qua;
}
else
{
g=Instantiate(prefab,position,qua);
}
return g;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PoolText : MonoBehaviour {
public GameObject prefab;
public Stack<GameObject> s = new Stack<GameObject>();
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void Create()
{
s.Push(ObjectPool.instance.Creat(prefab,Vector3.one,Quaternion.identity));
}
public void Delete()
{
ObjectPool.instance.Delete(s.Pop());
}
}