/// <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);
    }
Exemple #3
0
 public GameObject[] GetPrefabs(string folderName)
 {
     return(prefabsFactoryList.GetRes(folderName));
 }
Exemple #4
0
 public TextAsset GetTextAsset(string textName)
 {
     return(textAssetFactory.GetRes(textName));
 }
Exemple #5
0
 public GameObject GetPrefabRes(string resName)
 {
     return(prefabsFactory.GetRes(resName));
 }
Exemple #6
0
 public AudioClip[] GetAudioclips(string folderName)
 {
     return(audioClipFactoryList.GetRes(folderName));
 }
Exemple #7
0
 public AudioClip GetAudioclipRes(string resName)
 {
     return(audioClipFactory.GetRes(resName));
 }
Exemple #8
0
 public Sprite[] GetSprites(string folderName)
 {
     return(spritesFactoryList.GetRes(folderName));
 }
Exemple #9
0
 /// <summary>
 /// 获取相应资源
 /// </summary>
 /// <param name="resName"></param>
 /// <returns></returns>
 public Sprite GetSpriteRes(string resName)
 {
     return(spritesFactory.GetRes(resName));
 }