Exemple #1
0
 /// <summary>
 /// 创建池
 /// </summary>
 /// <param name="resName"></param>
 /// <param name="mode"></param>
 /// <param name="pType"></param>
 /// <param name="time"></param>
 private void createPool(string resName, E_PoolMode mode = E_PoolMode.Time, E_PoolType pType = E_PoolType.None, float time = 60)
 {
     if (!pools.ContainsKey(resName))
     {
         string   resPath = Path.Combine(Define.abPre, resName).ToLower();
         BasePool p       = PoolFactory.create(resName, resPath, mode, pType, time);
         pools.Add(resName, p);
     }
 }
Exemple #2
0
 //获取Sprite
 public void getObj(string spName, Action <Sprite> callBack, E_PoolMode mode = E_PoolMode.Time, E_PoolType pType = E_PoolType.Atlas, float time = 60)
 {
     if (AtlasMgr.hasKey(spName))
     {
         string resName = AtlasMgr.getName(spName);
         createPool(resName, mode, pType, time);
         pools[resName].getObj(spName, callBack);
     }
     else
     {
         Debug.LogError("没有找到bundle名称 spName " + spName);
     }
 }
Exemple #3
0
    static int resGet(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2)
            {
                string arg0 = ToLua.CheckString(L, 1);
                System.Action <UnityEngine.GameObject> arg1 = (System.Action <UnityEngine.GameObject>)ToLua.CheckDelegate <System.Action <UnityEngine.GameObject> >(L, 2);
                LuaExtend.resGet(arg0, arg1);
                return(0);
            }
            else if (count == 3)
            {
                string arg0 = ToLua.CheckString(L, 1);
                System.Action <UnityEngine.GameObject> arg1 = (System.Action <UnityEngine.GameObject>)ToLua.CheckDelegate <System.Action <UnityEngine.GameObject> >(L, 2);
                E_PoolMode arg2 = (E_PoolMode)ToLua.CheckObject(L, 3, typeof(E_PoolMode));
                LuaExtend.resGet(arg0, arg1, arg2);
                return(0);
            }
            else if (count == 4)
            {
                string arg0 = ToLua.CheckString(L, 1);
                System.Action <UnityEngine.GameObject> arg1 = (System.Action <UnityEngine.GameObject>)ToLua.CheckDelegate <System.Action <UnityEngine.GameObject> >(L, 2);
                E_PoolMode arg2 = (E_PoolMode)ToLua.CheckObject(L, 3, typeof(E_PoolMode));
                E_PoolType arg3 = (E_PoolType)ToLua.CheckObject(L, 4, typeof(E_PoolType));
                LuaExtend.resGet(arg0, arg1, arg2, arg3);
                return(0);
            }
            else if (count == 5)
            {
                string arg0 = ToLua.CheckString(L, 1);
                System.Action <UnityEngine.GameObject> arg1 = (System.Action <UnityEngine.GameObject>)ToLua.CheckDelegate <System.Action <UnityEngine.GameObject> >(L, 2);
                E_PoolMode arg2 = (E_PoolMode)ToLua.CheckObject(L, 3, typeof(E_PoolMode));
                E_PoolType arg3 = (E_PoolType)ToLua.CheckObject(L, 4, typeof(E_PoolType));
                float      arg4 = (float)LuaDLL.luaL_checknumber(L, 5);
                LuaExtend.resGet(arg0, arg1, arg2, arg3, arg4);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: LuaExtend.resGet"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Exemple #4
0
    public BasePool(string resName, string resPath, E_PoolMode mode, E_PoolType pType, float time)
    {
        this.resName = resName;
        this.resPath = resPath;
        pMode        = mode;
        this.pType   = pType;
        lifeTime     = time;
        string     poolName = string.Format("[{0}][{1}][{2}]", mode.ToString(), pType.ToString(), resName);
        GameObject go       = new GameObject(poolName);

        this.poolRoot = go.transform;
        this.poolRoot.SetParent(PoolMgr.Instance.PoolRoot);
        this.poolRoot.transform.localPosition = Vector3.zero;
        initialize();
    }
Exemple #5
0
    public static BasePool create(string resName, string resPath, E_PoolMode mode, E_PoolType pType, float time)
    {
        BasePool p = null;

        switch (pType)
        {
        case E_PoolType.UICache:
            p = new UICachePool(resName, resPath, mode, pType, time);
            break;

        case E_PoolType.Atlas:
            p = new AtlasPool(resName, resPath, mode, pType, time);
            break;

        case E_PoolType.Model:
            p = new ModelPool(resName, resPath, mode, pType, time);
            break;

        default:
            p = new BasePool(resName, resPath, mode, pType, time);
            break;
        }
        return(p);
    }
Exemple #6
0
 /// <summary>
 /// 预创建池子
 /// 可能在进入场景的时候需要预加载一些gameobject或者load一些bundle
 /// </summary>
 /// <param name="resName"></param>
 /// <param name="callBack"></param>
 /// <param name="mode"></param>
 /// <param name="pType"></param>
 /// <param name="preLoadCount"></param> 初始化个数
 /// <param name="time"></param>
 public void preLoad(string resName, Action <string> callBack, E_PoolMode mode, E_PoolType pType, int preLoadCount = 0, float time = 60)
 {
     resName = resName.ToLower();
     createPool(resName, mode, pType, time);
     pools[resName].preLoad(callBack, preLoadCount);
 }
Exemple #7
0
 //获取gameObject
 public void getObj(string resName, Action <GameObject> callBack, E_PoolMode mode = E_PoolMode.Time, E_PoolType pType = E_PoolType.None, float time = 60)
 {
     resName = resName.ToLower();
     createPool(resName, mode, pType, time);
     pools[resName].getObj(callBack);
 }
Exemple #8
0
 public BaseGameObjPool(string resName, string resPath, E_PoolMode mode, E_PoolType pType, float time) : base(resName, resPath, mode, pType, time)
 {
 }
Exemple #9
0
 public static void setSprite(string spName, Action <Sprite, string> callBack, E_PoolMode mode = E_PoolMode.Time, E_PoolType pType = E_PoolType.Atlas, float time = 60)
 {
     PoolMgr.Instance.getObj(spName, callBack, mode, pType, time);
 }
Exemple #10
0
 public static void resGet(string resName, Action <GameObject> callBack, E_PoolMode mode = E_PoolMode.Time, E_PoolType pType = E_PoolType.None, float time = 60)
 {
     PoolMgr.Instance.getObj(resName, callBack, mode, pType, time);
 }
Exemple #11
0
 public UICachePool(string resName, string resPath, E_PoolMode mode, E_PoolType pType, float time) : base(resName, resPath, mode, pType, time)
 {
 }