/// <summary> /// 构造方法 /// </summary> /// <param name="resFactory"></param> /// <param name="objName"></param> /// <param name="initCount"></param> public GameObjectPool(ResFactory <GameObject> resFactory, string objName, int initCount = 0) { mFactory = resFactory; mCacheStack = new Stack <GameObject>(); for (int i = 0; i < initCount; i++) { mCacheStack.Push(InstantiateGO(mFactory.GetRes(objName))); } }
/// <summary> /// 获取游戏物体对象 /// </summary> /// <param name="objName"></param> /// <returns></returns> public GameObject GetObj(string objName, int recycleTime = 3) { GameObject obj; if (mCacheStack.Count > 0) { obj = mCacheStack.Pop(); } else { obj = InstantiateGO(mFactory.GetRes(objName)); } obj.SetActive(true); TimerSystem.Instance.AddTimerTask(() => { Recycle(obj); }, recycleTime * 1000, 0); return(obj); }
public GameObject[] GetPrefabs(string folderName) { return(prefabsFactoryList.GetRes(folderName)); }
public TextAsset GetTextAsset(string textName) { return(textAssetFactory.GetRes(textName)); }
public GameObject GetPrefabRes(string resName) { return(prefabsFactory.GetRes(resName)); }
public AudioClip[] GetAudioclips(string folderName) { return(audioClipFactoryList.GetRes(folderName)); }
public AudioClip GetAudioclipRes(string resName) { return(audioClipFactory.GetRes(resName)); }
public Sprite[] GetSprites(string folderName) { return(spritesFactoryList.GetRes(folderName)); }
/// <summary> /// 获取相应资源 /// </summary> /// <param name="resName"></param> /// <returns></returns> public Sprite GetSpriteRes(string resName) { return(spritesFactory.GetRes(resName)); }