/// <summary> /// 异步从对象池中获得实例化对象 /// </summary> /// <param name="prefabName"></param> /// <param name="callback"></param> public static void GetObjectAsync(string prefabName, CallBack <GameObject> callback) { if (dataDic.ContainsKey(prefabName) && dataDic[prefabName].Count > 0) { GameObject po = dataDic[prefabName].Pop(); if (po) { ResetObject(po); if (callback != null) { callback(po); } } else { GetInstanceObject.GetInstanceAsync(prefabName, callback); } } else { GetInstanceObject.GetInstanceAsync(prefabName, callback); } }
/// <summary> /// 从对象池中获得实例化对象 /// </summary> /// <param name="prefabName"></param> /// <returns></returns> public static GameObject GetObject(string prefabName) { if (!Application.isPlaying) { return(GetInstanceObject.GetInstance(prefabName)); } if (dataDic.ContainsKey(prefabName) && dataDic[prefabName].Count > 0) { GameObject po = dataDic[prefabName].Pop(); if (po) { ResetObject(po); return(po); } else { return(GetInstanceObject.GetInstance(prefabName)); } } return(GetInstanceObject.GetInstance(prefabName)); }