当前位置:网站首页>Unity super simple object pool
Unity super simple object pool
2022-08-06 10:01:00 【m_girlAndGirl】
public class PoolMgr
{
private static PoolMgr instance;
public static PoolMgr Instance
{
get
{
if (instance==null)
{
instance = new PoolMgr();
}
return instance;
}
}
private Dictionary<string, Queue<GameObject>> pools = new Dictionary<string, Queue<GameObject>>();
private Transform poolObj;
public void Push(GameObject obj)
{
obj.name = obj.name.Replace("(Clone)",string.Empty);
if (!pools.ContainsKey(obj.name))
{
pools.Add(obj.name,new Queue<GameObject>());
}
if (!poolObj)
{
poolObj = new GameObject("Pools").transform;
}
Transform objParent = poolObj.Find(obj.name);
if (!objParent)
{
objParent = new GameObject(obj.name).transform;
objParent.SetParent(poolObj);
}
obj.transform.SetParent(objParent);
pools[obj.name].Enqueue(obj);
obj.SetActive(false);
}
public GameObject GetObj(GameObject obj)
{
if (!pools.ContainsKey(obj.name) || (pools.ContainsKey(obj.name)&& pools[obj.name].Count == 0))
{
GameObject temp = GameObject.Instantiate(obj);
Push(temp);
}
GameObject result = pools[obj.name].Dequeue();
result.SetActive(true);
return result;
}
}
边栏推荐
猜你喜欢
随机推荐
【R语言】【4】data.frame与merge与join与cbind与rbind
jupyter notebook & pycharm(anaconda)
RL强化学习总结(二)
Two important self-learning functions in pytorch dir(); help()
网页版 Xshell支持FTP连接和SFTP连接 【详细教程】接上篇文章
网页版的Xshell支持FTP连接和SFTP连接
PyBind11踩坑笔记
域名授权验证系统v1.0.6开源版本网站源码
C language structure
LeetCode-622. 设计循环队列
深度学习简介
融合通信常见问题7月刊 | 云信小课堂
白色简洁大方公司企业网站源码 WordPress主题2款
ACM common header files
Hdu2022 多校训练(5) BBQ
WebRTC目录结构
[NPUCTF2020]ReadlezPHP 此题有两个flag哦
pytorch中 torch.utils.data的用法 ----加载数据篇
21天学习挑战赛--第三天打卡(动态更换app图标)
Kotlin进阶指南 - default constructor not found









