Beispiel #1
0
    //预加载窗口物体进缓存
    public void InitWindowCache(PEWindowEnum windowEnum, ResType resType, string luaName = "", ResCacheType cacheType = ResCacheType.Never)
    {
        PWindow    pwindow    = new PWindow(windowEnum, luaName);
        string     windowName = pwindow.windowName;
        GameObject gb         = null;

        if (!windowDic.ContainsKey(pwindow))
        {
            gb                         = (GameObject)ResourceMgr.GetInstantiateOB(windowName, resType, cacheType);
            gb.name                    = windowName;
            gb.transform.parent        = windowRootTrans;
            gb.transform.localPosition = Vector3.zero;
            gb.transform.localScale    = Vector3.one;
            NGUITools.SetActive(gb, false);
            WindowBase windowBase = gb.GetComponent <WindowBase>();
            if (windowBase == null)
            {
                windowBase = GetOrAddWindowHandle(gb, windowEnum, luaName);
                if (windowBase == null)
                {
                    Debug.LogError("Can not Get " + windowName + " Handle Scripts");
                    return;
                }
            }
            windowDic.Add(pwindow, new PWindowType(windowBase, resType, cacheType));
            windowBase.InitDic();
        }
    }
Beispiel #2
0
 public PWindow(PEWindowEnum windowEnum, string luaName)
 {
     this.windowEnum = windowEnum;
     if (luaName == "")
     {
         windowName = windowEnum.ToString();
     }
     else
     {
         windowName = luaName;
     }
 }
Beispiel #3
0
    //控制UI窗口的状态 open:窗口是否打开,state:状态控制参数,两者都传递到WindowBase的InitWindow()中去。
    public void SetWindowState(PEWindowEnum windowEnum, ResType resType, string luaName = "", bool open = true, int state = 0)
    {
        PWindow pwindow = new PWindow(windowEnum, luaName);

        if (!windowDic.ContainsKey(pwindow))
        {
            InitWindowCache(windowEnum, resType, luaName);
        }
        WindowBase wb = windowDic[pwindow].windowBase;

        wb.curWindowEnum = windowEnum;
        wb.luaWindowName = luaName;
        wb.InitWindow(open, state);
    }
Beispiel #4
0
    //----------------------------------------------------------------//

    ///////////////////////////ToolMethonds/////////////////////////////
    //获取或添加窗口的根控制脚本
    private WindowBase GetOrAddWindowHandle(GameObject gb, PEWindowEnum windowEnum, string luaName)
    {
        WindowBase windowBase = null;

        switch (windowEnum)
        {
        case PEWindowEnum.Login_window:
            windowBase = PEUITools.GetOrAddWindowHandle <HandleLoginWindow>(gb);
            break;

        case PEWindowEnum.Logined_window:
            windowBase = PEUITools.GetOrAddWindowHandle <HandleLoginedWindow>(gb);
            break;

        default:
            break;
        }
        return(windowBase);
    }