-
Notifications
You must be signed in to change notification settings - Fork 548
游戏对象管理器
本质上是一个对象池,可以帮你减少频繁的创建销毁开销,提供了PoolObject类用以提供从对象池取出的接口
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 :)