少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-27 48c963425709dcd449fa5bc98049d2393dfd56ef
System/WindowBase/Window.cs
@@ -38,6 +38,7 @@
        }
        public bool playAnimation { get; set; }
        public bool executedActiveWindow { get; set; }
        internal Window Open()
        {
@@ -65,6 +66,7 @@
                Debug.Log(ex.StackTrace);
            }
            executedActiveWindow = false;
            RectTransform parent = null;
            try
            {
@@ -151,6 +153,7 @@
                windowState = WindowState.Closing;
            }
            executedActiveWindow = false;
            return this;
        }
@@ -207,6 +210,7 @@
            try
            {
                OnAfterClose();
                executedActiveWindow = false;
            }
            catch (System.Exception ex)
            {
@@ -237,6 +241,11 @@
        public virtual void CloseClick()
        {
            CloseImmediately();
        }
        public void ChildActive()
        {
            OnActived();
        }
        protected virtual void LateUpdate()
@@ -350,6 +359,7 @@
                    try
                    {
                        OnAfterClose();
                        executedActiveWindow = false;
                    }
                    catch (System.Exception ex)
                    {
@@ -400,6 +410,7 @@
                try
                {
                    OnAfterClose();
                    executedActiveWindow = false;
                }
                catch (System.Exception ex)
                {
@@ -439,7 +450,37 @@
            try
            {
                OnActived();
                var isChildWindow = WindowConfig.Get().IsChildWindow(this.gameObject.name);
                if (isChildWindow)
                {
                    var parentName = string.Empty;
                    WindowConfig.Get().FindParentWindow(this.gameObject.name, out parentName);
                    var parentWindow = WindowCenter.Instance.Get(parentName);
                    if (parentWindow != null && parentWindow.executedActiveWindow)
                    {
                        OnActived();
                        executedActiveWindow = true;
                    }
                }
                else
                {
                    OnActived();
                    executedActiveWindow = true;
                    var childWindows = WindowConfig.Get().FindChildWindows(this.gameObject.name);
                    var isParentWindow = childWindows != null;
                    if (isParentWindow)
                    {
                        foreach (var child in childWindows)
                        {
                            var window = WindowCenter.Instance.Get(child);
                            if (window != null && !window.executedActiveWindow)
                            {
                                window.ChildActive();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {