Unity3D框架学习_对象池和对象池管理_基于PoolManager插件
目录
1、博文介绍
本篇博客同样是介绍对象池的管理,同时向大家推荐一款插件就是PoolManager,一款关于对象池的插件,本篇博文中博主使用的是7.0的版本,插件的介绍来自雨松大大关于该插件的介绍,推送中会推送雨松大大的相关文章,本篇博文作为插件介绍的一篇也同时作为框架学习的一篇。
2、内容
(1)插件属性介绍
PoolName | 缓存池的唯一名称 |
MatchPoolScale | 勾选后实例化的游戏对象的缩放比例将全是1,不勾选择用Prefab默认的 |
MachPool Layer | 勾选后实例化的游戏对象的Layer将用Prefab默认的 |
Don’t Reparent | 勾选后实例化的对象将没有父节点,通通在最上层,建议不要勾选 |
Don’t Destroy On Load | 场景切换不销毁 |
LogMessage | 是否输出相关信息 |
Pre-Prefab Pool Options | 缓存池列表,意思就是缓存列表里面可以放各种类型的Prefab。右边有个 “+”按钮点击就添加每个类型的Prefab了 |
prefab | 可以直接把工程里的Prefab直接拖进来 |
preloadAmount | 缓存池这个Prefab的最大保存数量 |
preloadTime | 如果都选表示缓存池所有的gameobject可以“异步”加载 |
preloadFrames | 每几帧加载一个 |
preloadDelay | 延迟多久开始加载 |
limitInstance | 是否开始实例的限制功能 |
limit Amount | 限制缓存池里最大的Prefab的数量,它和上面的preloadAmount是有冲突的,如果同时开启则以limitAmout为准 |
limitFIFO | 如果我们限制了缓存池里面只能有10个Prefab,如果不勾选它,那么你拿第11个的时候就会返回null。如果勾选它在取第11个的时候他会返回给你前10个里最不常用的那个 |
cullDespawend | 是否开启缓存池智能自动清理模式 |
cull Above | 缓存池自动清理,但是始终保留几个对象不清理 |
cull Delay | 每过多久执行一遍自动清理,单位是秒 |
cullMaxPerPass | 每次自动清理几个游戏对象 |
logMessage | 输出相关信息 |
注:属性相关介绍摘自雨松MoMo
(2)PoolMgr
根据插件的属性和相关用法,进行了封装,不外乎也就是 拿/放 的操作
默认属性的设置都在PoolMgr内,可以手动设置(1)内的所有配置属性
(3)使用方法
//实例化
PoolMgr poolMgr = new PoolMgr();
//直接获取实例
poolMgr.Spawn(prefab);
//获取实例并设置父物体
poolMgr.Spawn(prefab,parent);
//获取实例并设置位置旋转
poolMgr.Spawn(prefab,pos,rot);
//获取实例并设置位置旋转,父级
poolMgr.Spawn(prefab,pos,rot,parent);
//释放物体
poolMgr.Despawn(prefab);
//释放物体到parent下
poolMgr.Despawn(prefab,parent);
//释放池子内所有活跃物体
poolMgr.DespawnAll();
在github内的工程里写了例子,工程代码全部在github内,下载请移步博主github
3、推送
雨松MOMO 2014年07月18日 于 雨松MOMO程序研究院 发表
https://www.xuanyusong.com/archives/2974
工程github:https://github.com/KingSun5/UnityPool_PoolManager
4、结语
生命不息,学习不止,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
QQ交流群:806091680(Chinar)
该群为优快云博主Chinar所创,推荐一下!我也在群里!
本文属于原创文章,转载请著名作者出处并置顶!!!!!