using System.Collections; using System.Collections.Generic; using UnityEngine; public class PollBase : MonoBehaviour { //自动释放时间/秒 protected float m_ReleaseTime; //上次释放的时间/毫微秒 10……7; protected long m_LastReleaseTime = 0; //对象池 protected List m_Objects; public void Start() { m_LastReleaseTime = System.DateTime.Now.Ticks; } /// /// 初始化对象池 /// /// public void Init(float time) { m_ReleaseTime = time; m_Objects = new List(); } /// /// 取出对象 /// /// /// public virtual Object Spwan(string name) { foreach (PollObject po in m_Objects) { if (po.Name == name) { m_Objects.Remove(po); return po.Object; } } return null; } /// /// 回收 /// /// /// public virtual void UnSpwan(string name, Object obj) { PollObject po = new PollObject(name, obj); m_Objects.Add(po); } /// /// 释放 /// public virtual void Release() { } private void Update() { if (System.DateTime.Now.Ticks - m_LastReleaseTime >= m_ReleaseTime * 10000000) { m_LastReleaseTime = System.DateTime.Now.Ticks; Release(); } } }