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
    ---------------------------------------------------
  • 相关阅读:
    NSIS 资料
    git 强制刷新,放弃更改
    Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 8
    …gen already exists but is not a source folder. Convert to a source folder or rename it [closed]
    eclipse
    Timeout in android httpclient
    git command
    L1-032. Left-pad
    L1-030. 一帮一
    L1-028. 判断素数
  • 原文地址:https://www.cnblogs.com/nafio/p/9137406.html
Copyright © 2011-2022 走看看