• 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
    ---------------------------------------------------
  • 相关阅读:
    Objective-C 数据集合
    iOS PresentViewControlle后,直接返回根视图
    NSMutableString 常用操作
    NSString 的常用操作
    iOS 获取网络状态
    C#属性封装
    C#类的一些概念
    ref和out 传递参数(C#)
    C#字符串的恒定性
    C#方法的重载和方法的可变参数
  • 原文地址:https://www.cnblogs.com/nafio/p/9137406.html
Copyright © 2020-2023  润新知