Skip to content

游戏对象管理器

高凯 edited this page Dec 31, 2017 · 1 revision

介绍

本质上是一个对象池,可以帮你减少频繁的创建销毁开销,提供了PoolObject类用以提供从对象池取出的接口

API

GameObjectManager
static GameObject CreateGameObject(string gameObjectName,GameObject parent = null)
加载一个对象并把它实例化,(不使用对象池)

static GameObject CreateGameObjectByPool(string name,GameObject parent = null,bool isSetActive = true)
从对象池取出一个对象,如果没有,则直接创建它,isSetActive是用来判断是否重设该对象的Active,用来节约Unity组件的开销

static void DestroyGameObjectByPool(GameObject obj, bool isSetActive = true)
将一个对象放入对象池,isSetActive:是否重设Active

static void DestroyGameObjectByPool(GameObject go,float time)
延迟将一个对象放入对象池

static void CleanPool()
清空对象池

static void CleanPoolByName(string name)
清除掉某一个对象的所有对象池缓存

static void CreateGameObjectByPoolAsync(string name, CallBack<GameObject> callback, GameObject parent = null, bool isSetActive = true)
异步加载一个对象,并创建它

GameObjectManager -> PoolObject
static void PutPoolObject(string gameObjectName)
预加载一个对象并放入对象池,不创建

static PoolObject GetPoolObject(string name, GameObject parent = null)
从对象池取出一个对象,如果没有,则直接创建它

static void DestroyPoolObject(PoolObject obj)
将一个对象放入对象池

static void CleanPool_New()
清空PoolObject对象池

public static void CleanPoolByName_New(string name)
清除掉某一个PoolObject对象的所有对象池缓存

static void CreatePoolObjectAsync(string name, CallBack<PoolObject> callback, GameObject parent = null)
异步加载一个PoolObject对象,并创建它

提示

  • 使用对象池要小心,确保你将对象放入对象池之前,所有必要的数据都已经重置,不然可能出现意外的BUG
  • 入池前记得清除对象身上的动画,这也可能是一个难查的BUG :)
Clone this wiki locally