Ejemplo n.º 1
0
    //增加一层界面
    private void AddNewLayer(GameObject obj, LastLayerStatus s_LLStatus)
    {
        if (uiRoot == null)
        {
            uiRoot = GameObject.Find("UI Root").transform;
        }

        obj.transform.parent     = uiRoot;
        obj.transform.localScale = new Vector3(1, 1, 1);

        UIComponent layerComp = obj.GetComponent <UIComponent>();

        if (currLayerComp != null)
        {
            layerComp.PrevLayer = currLayerComp;

            UIComponent currUILayer = currLayerComp;

            currUILayer.s_LastLayerStatus = s_LLStatus;

            switch (s_LLStatus)
            {
            case LastLayerStatus.Active_N_Net_N:
                currUILayer.OnExit();
                break;

            case LastLayerStatus.Active_Y_Net_N:
                currUILayer.AcceptNet = false;
                break;

            case LastLayerStatus.Active_Y_Net_Y:
                break;

            default:
                break;
            }
        }

        layerCompList.Add(layerComp);

        currLayerComp = layerComp;
        layerComp.Init();
        layerComp.OnEnter();
    }
Ejemplo n.º 2
0
    //新建一层,叠加或覆盖 如果replace=true 则s_LLStatus的值无效
    public GameObject CreateAndAdd(string uiLayer, string uiname, bool replace = true, LastLayerStatus s_LLStatus = LastLayerStatus.Active_N_Net_N)
    {
        if (currLayerComp != null)
        {
            if (currLayerComp.name == uiname)
            {
                Debug.Log("T CreateAndAdd 同样的界面不要连续加两次!" + uiname);
                return(currLayerComp.gameObject);
            }
        }

        //实例化
        GameObject s_UILayer = UILayerManage.InstantiateUIPre(uiname);

        //添加通用组件
        s_UILayer.AddComponent <UIComponent>();

        //添加本身组件
        s_UILayer.AddComponent(uiLayer);

        //
        if (s_UILayer != null)
        {
            if (replace)
            {
                ReplaceLayer(s_UILayer);
            }
            else
            {
                AddNewLayer(s_UILayer, s_LLStatus);
            }
        }
        return(s_UILayer);
    }