用法,1是获取,2是清除,

问题是这个池到底能做什么用

首先用这个池生成的对象是在池节点下使用,而不是取出来用(可以取出来用,直接transform.parent赋值就可以)

疑问,池里面的节点时什么时候被隐藏的

Despawn时被隐藏的

补充说明:池中有spawn列表和despawn列表,在生成和回炉的操作时会进入对应的列表,如果两个列表数据量的和大于最大数值,回炉时就会销毁数据对象

spawn取出的对象可以绑的任何节点之下,使用despawn回收时这个对象节点绑定不需要变化,仅仅只是被池隐藏掉了

---------------------------------------------------

Demo分析

Example Scene场景分析

发现池以外的类为

ExampleObjects节点下的

Spawner节点上的SimpleSpawner

Creator节点上的CreationExample

---------------------------------------------------

SimpleSpawner类分析

目的应该是演示静态创建的池的使用

里面包含两个池,普通图形shape prefab池,例子prefab池

具体就是创建spawn然后再删除despawn

CreationExample类分析

1 目的应该是演示一个动态创建的池(池的名称是Creator),并且动态设置池的属性

这里设置的属性主要是清理条件很重要,比如prefabPool.preloadAmount = 5;

只保留5个,这个参数导致生成球最多只有5个,超过5个就会清除

2 在Start中还有个例子,从池中取出一个空闲对象,并填充的操作

---------------------------------------------------

PoolManager有3个基本类分析

SpawnPool 对象池

PoolManager 对象池管理器

PreRuntimePoolItem 存入池的item(这里能设置PoolName和PrefabName)

作用应该是OnStart时自动进入相应名字的池

另外有两个参数需要注意(实际作用未知)

DespawnOnStart 不会在OnStart时被自动设置为inactive

Do Not Reparent 是否把节点加入对象池的子节点

SpawnPool (只写几个需要注意的位置)

Awake时会调用PoolManager.Pools.Add(this);把自己加入PoolManager中

包含4种Transform,AudioSource,ParticleSystem,ParticleEmitter

SpawnPool里面还有一层PrefabPool,一个SpawnPool内部包含一组PrefabPool

具体创建池时是先创建PrefabPool,然后加入SpawnPool中

静态创建看SpawnPool.Awake

动态创建看CreationExample.Start

---------------------------------------------------

Untiy PoolManager随手记的更多相关文章

  1. Linux.NET实战手记—自己动手改泥鳅(上)

    各位读者大家好,不知各位读者有否阅读在下的前一个系列<Linux.NET 学习手记>,在前一个系列中,我们从Linux中Mono的编译安装开始,到Jexus服务器的介绍,以及如何在Linu ...

  2. Linux.NET学习手记(7)

    前一篇中,我们简单的讲述了下如何在Linux.NET中部署第一个ASP.NET MVC 5.0的程序.而目前微软已经提出OWIN并致力于发展VNext,接下来系列中,我们将会向OWIN方向转战. 早在 ...

  3. Linux.NET学习手记(8)

    上一回合中,我们讲解了Linux.NET面对OWIN需要做出的准备,以及介绍了如何将两个支持OWIN协议的框架:SignalR以及NancyFX以OwinHost的方式部署到Linux.NET当中.这 ...

  4. 关于《Linux.NET学习手记(8)》的补充说明

    早前的一两天<Linux.NET学习手记(8)>发布了,这一篇主要是讲述OWIN框架与OwinHost之间如何根据OWIN协议进行通信构成一套完整的系统.文中我们还直接学习如何直接操作OW ...

  5. U3D DrawCall优化手记

    在最近,使用U3D开发的游戏核心部分功能即将完成,中间由于各种历史原因,导致项目存在比较大的问题,这些问题在最后,恐怕只能通过一次彻底的重构来解决 现在的游戏跑起来会有接近130-170个左右的Dra ...

  6. 信息系统实践手记5-CACHE设计一例

    说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...

  7. 信息系统实践手记6-JS调用Flex的性能问题一例

    说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...

  8. SQL Server 2016 CTP2.2 安装手记

    SQL Server 2016 CTP2.2 安装手记 下载一个iso文件,解压出来(大约2.8G左右),在该路径下双击Setup.exe即可开始安装. 安装之前请先安装.NET 3.5 SP1,在服 ...

  9. Knockout.js随手记(2)

    计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...

随机推荐

  1. 【BZOJ3052】[wc2013]糖果公园 带修改的树上莫队

    [BZOJ3052][wc2013]糖果公园 Description Input Output Sample Input Sample Input Sample Output 84 131 27 84 ...

  2. Spring mvc接受集合类型参数的方法

    public String xxxxx(String xxxx, String xxxxx, @RequestParam("parameterList[]") List<St ...

  3. JQuery 如何获取select选中的值

    一.html代码 <select id="ddl"> <option value="100" emoney="12" &g ...

  4. LeastRecentlyUsed

    LeastRecentlyUsed Operating Systems http://www.cs.jhu.edu/~yairamir/cs418/os6/sld001.htm Cache repla ...

  5. 挂断电话demo

    <!-- 结束通话和打电话的权限 --> <uses-permission android:name="android.permission.CALL_PHONE" ...

  6. 操作Zookeeper

    可以通过图形化界面进行操作使用的工具是 zookeeper-dev-ZooInspector.jar 连接到我的zk之后: 1.Java操作zk 依赖: <dependency> < ...

  7. MYSQL进阶学习笔记十七:MySQL定期维护!(视频序号:进阶_36)

    知识点十八:MySQL定期维护(37) 一.Mysql的定时器 所谓的定时器,指的是在某个时间段去执行同样的代码.比如闹钟.每到指定的时间闹铃就会响.同样的,我们这个定时器,只要满足我们的一个定时条件 ...

  8. python多进程执行任务

    https://blog.csdn.net/qq_39694935/article/details/84552076 [Python]multiprocessing Pool 进程间通信共享 直接上代 ...

  9. html5--3.10 input元素(9)

    html5--3.10 input元素(9) 学习要点 input元素及其属性 input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等 不仅可以布置在表单中,也可以在表单之外的元素使用 ...

  10. hdu-5761 Rower Bo(数学)

    题目链接: Rower Bo Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 131072/131072 K (Java/Others ...