Example #1
0
    /// <summary>
    /// 打开UI
    /// </summary>
    /// <param name="UIName">UI名</param>
    /// <param name="callback">动画播放完毕回调</param>
    /// <param name="objs">回调传参</param>`
    /// <returns>返回打开的UI</returns>
    public static UIWindowBase OpenUIWindow(string UIName, UICallBack callback = null, params object[] objs)
    {
        UIWindowBase UIbase = GetHideUI(UIName);

        if (UIbase == null)
        {
            UIbase = CreateUIWindow(UIName);
        }

        RemoveHideUI(UIbase);
        AddUI(UIbase);

        UIStackManager.OnUIOpen(UIbase);
        UILayerManager.SetLayer(UIbase);      //设置层级

        UIbase.windowStatus = UIWindowBase.WindowStatus.OpenAnim;

        UISystemEvent.Dispatch(UIbase, UIEvent.OnOpen);  //派发OnOpen事件
        try
        {
            UIbase.OnOpen();
        }
        catch (Exception e)
        {
            Debug.LogError(UIName + " OnOpen Exception: " + e.ToString());
        }

        UISystemEvent.Dispatch(UIbase, UIEvent.OnOpened);     //派发OnOpened事件

        UIAnimManager.StartEnterAnim(UIbase, callback, objs); //播放动画
        return(UIbase);
    }
Example #2
0
    public static void Init()
    {
        if (!isInit)
        {
            isInit = true;

            GameObject instance = GameObject.Find("UIManager");

            if (instance == null)
            {
                instance = GameObjectManager.CreateGameObject("UIManager");
            }

            UIManagerGo = instance;

            s_UILayerManager = instance.GetComponent <UILayerManager>();
            s_UIAnimManager  = instance.GetComponent <UIAnimManager>();
            s_UIStackManager = instance.GetComponent <UIStackManager>();
            s_EventSystem    = instance.GetComponentInChildren <EventSystem>();

            if (Application.isPlaying)
            {
                DontDestroyOnLoad(instance);
            }
        }
    }
Example #3
0
 static int set_UIStackManager(IntPtr L)
 {
     try
     {
         UIStackManager arg0 = (UIStackManager)ToLua.CheckUnityObject(L, 2, typeof(UIStackManager));
         UIManager.UIStackManager = arg0;
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
    static void CloseUIWindowCallBack(UIWindowBase UI, params object[] objs)
    {
        UI.windowStatus = UIWindowBase.WindowStatus.Close;
        UISystemEvent.Dispatch(UI, UIEvent.OnClose);  //派发OnClose事件
        try
        {
            UI.OnClose();
        }
        catch (Exception e)
        {
            Debug.LogError(UI.UIName + " OnClose Exception: " + e.ToString());
        }

        UIStackManager.OnUIClose(UI);
        AddHideUI(UI);
    }
Example #5
0
    static public Dictionary <string, List <UIWindowBase> > s_hideUIs = new Dictionary <string, List <UIWindowBase> >(); //隐藏的UI

    #region 初始化

    public static void Init()
    {
        GameObject instance = GameObject.Find("UIManager");

        if (instance == null)
        {
            instance = GameObjectManager.CreateGameObject("UIManager");
        }

        s_UIManagerGo = instance;

        s_UILayerManager = instance.GetComponent <UILayerManager>();
        s_UIAnimManager  = instance.GetComponent <UIAnimManager>();
        s_UIStackManager = instance.GetComponent <UIStackManager>();
        s_UIcamera       = instance.GetComponentInChildren <Camera>();

        DontDestroyOnLoad(instance);
    }
Example #6
0
 public static void CloseLastUI(UIType uiType = UIType.Normal)
 {
     UIStackManager.CloseLastUIWindow(uiType);
 }
Example #7
0
    override protected void OnDisable()
    {
        base.OnDisable();

        UIStackManager.PopUiStack(CacheGameObject.GetInstanceID());
    }
Example #8
0
    protected void OnEnable()
    {
        UIStackManager.PushUiStack(transform, CloseCallback);

        AddHistory();
    }
 protected IUIStack BuildUIStackInstance(IDependencyContainer container)
 {
     return(UIStackManager.BuildHierarchy(uiManagerSettings));
 }