/// <summary> /// 创建一种实体资源的对象池 /// </summary> public AssetObjectPool CreatePool(string resName, int capacity) { if (_pools.ContainsKey(resName)) { return(_pools[resName]); } AssetObjectPool pool = new AssetObjectPool(_root.transform, resName, capacity); _pools.Add(resName, pool); return(pool); }
/// <summary> /// 同步方式获取一个实体对象 /// </summary> public GameObject Spawn(string resName) { if (_pools.ContainsKey(resName)) { return(_pools[resName].Spawn()); } else { // 如果不存在创建该实体的对象池 AssetObjectPool pool = CreatePool(resName, 0); return(pool.Spawn()); } }
/// <summary> /// 异步方式获取一个实体对象 /// </summary> public void Spawn(string resName, Action <GameObject> callbcak) { if (_pools.ContainsKey(resName)) { _pools[resName].Spawn(callbcak); } else { // 如果不存在创建该实体的对象池 AssetObjectPool pool = CreatePool(resName, 0); pool.Spawn(callbcak); } }