对资源的重复利用,减少实例化,
#需要一个接口
可以命名为 IReusable
public interface IReusable {
//取出时候调用
void OnSpawn();
//回收调用
void OnUnSpawn();
}
#需要一个抽象类,继承接口,把方法也进行抽象,以供其他类调用的时候重写
public abstract class ReusableObject : MonoBehaviour, IReusable
{
public abstract void OnSpawn();
public abstract void OnUnSpawn();
}
#接下来的这个类是供外界调用 在场景里边挂载的(要继承单例)
public class ObjectPool : MonoSingleton
{
/// <summary>
/// 资源目录
/// </summary>
public string ResourceDir = "";
Dictionary<string, SubPool> m_pools = new Dictionary<string, SubPool>();
//取出物体
public GameObject Spawn(string name,Transform trans) {
SubP