zoukankan      html  css  js  c++  java
  • Untiy PoolManager随手记

    用法,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
    ---------------------------------------------------
  • 相关阅读:
    SQL易错总结1
    线程池使用总结
    多线程的上下文切换
    SQL 排序按指定内容优先排序
    System x 服务器制作ServerGuide U盘安装Windows Server 2008 操作系统 --不格式化盘
    错误“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决方案
    sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,
    sqlserver2005版本的mdf文件,还没有log文件,
    BCP SQL导出EXCEL常见问题及解决方法;数据导出存储过程
    Nginx
  • 原文地址:https://www.cnblogs.com/nafio/p/9137406.html
Copyright © 2011-2022 走看看