Exemplo n.º 1
0
            //----------------------------//

            private void ValidateWindow(GameObject goCanvas)
            {
                if (goWindow == null)
                {
                    goWindow = Helper.FindOrCreateUI("Window", goCanvas, (string name, GameObject parent) =>
                    {
                        GameObject window = Helper.CreateGUIGameObject(name, parent);
                        Helper.SetRectTransform(window, 0, 0, 1, 1, 0.5f, 1, 0, 0, 0, 0);
                        Image img  = window.AddOrGetComponent <Image>();
                        img.type   = Image.Type.Sliced;
                        img.sprite = Resources.Instance.GetSpriteBackground();

                        VerticalLayoutGroup vertical    = window.AddComponent <VerticalLayoutGroup>();
                        vertical.childForceExpandHeight = false;
                        vertical.padding = new RectOffset(4, 4, 4, 4);
                        vertical.spacing = 2;

                        return(window);
                    });
                }

                goWinBar = Helper.FindOrCreateUI("WindowBar", goWindow, (string name, GameObject parent) =>
                {
                    GameObject winbar = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(winbar, 0, 1, 1, 1, 0.5f, 1, 0, 0, 0, 0);
                    winbar.AddOrGetComponent <CanvasRenderer>();

                    Image img = winbar.AddOrGetComponent <Image>();
                    img.color = new Color(0.25f, 0.5f, 1.0f);

                    DraggableRect draggable = winbar.AddComponent <DraggableRect>();
                    draggable.target        = goWindow.GetComponent <RectTransform>();

                    LayoutElement layout   = winbar.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;

                    HorizontalLayoutGroup hor  = winbar.AddComponent <HorizontalLayoutGroup>();
                    hor.childForceExpandHeight = false;
                    hor.childForceExpandWidth  = false;
                    hor.childAlignment         = TextAnchor.MiddleCenter;

                    return(winbar);
                });

                goTitle = Helper.FindOrCreateUI("WindowTitle", goWinBar, (string name, GameObject parent) =>
                {
                    GameObject title = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(title, 0, 0, 1, 1, 0.5f, 0.5f, 0, 0, 0, 0);

                    LayoutElement layout = title.AddComponent <LayoutElement>();
                    layout.flexibleWidth = 1;

                    Text text      = title.AddOrGetComponent <Text>();
                    text.text      = "Overlay UI";
                    text.alignment = TextAnchor.MiddleCenter;
                    text.color     = Color.white;
                    text.font      = Resources.Instance.GetFontTilte();
                    text.fontSize  = Helper.FontSize();

                    return(title);
                });

                goClose = Helper.FindOrCreateUI("CloseButton", (string name, GameObject parent) =>
                {
                    GameObject close = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(close, 1, 0, 1, 1, 1, 0.5f, 32.0f - 4.0f, -4.0f, -2.0f, 0);
                    Image img  = close.AddOrGetComponent <Image>();
                    img.sprite = Resources.Instance.GetSpriteButton();
                    img.type   = Image.Type.Sliced;

                    LayoutElement layout   = close.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;
                    layout.preferredWidth  = 32.0f;

                    return(close);
                }, goWinBar);

                GameObject goCloseCross = Helper.FindOrCreateUI("CloseCross", goClose, (string name, GameObject parent) =>
                {
                    GameObject cimg = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(cimg, 0, 0, 1, 1, 0.5f, 0.5f, 0, 0, 0, 0);
                    Image img  = cimg.AddOrGetComponent <Image>();
                    img.sprite = Silver.UI.Resources.GetStaticSpriteCross();
                    img.type   = Image.Type.Simple;

                    return(cimg);
                });

                Button but = goClose.AddOrGetComponent <Button>();

                but.onClick.RemoveAllListeners();
                but.onClick.AddListener(() => { Visible = false; });

                goContent = Helper.FindOrCreateUI("Content", goWindow, (string name, GameObject parent) =>
                {
                    GameObject content = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(content, 0, 0, 1, 1, 0.5f, 0, -4.0f, 0.0f, 0, 2.0f);
                    content.AddOrGetComponent <Image>();
                    Mask mask            = content.AddOrGetComponent <Mask>();
                    mask.showMaskGraphic = false;

                    LayoutElement layout  = content.AddComponent <LayoutElement>();
                    layout.flexibleHeight = 1.0f;

                    return(content);
                });

                RefreshWindowsBarVisibility();
            }
Exemplo n.º 2
0
            private void ValidateWindow(GameObject goCanvas)
            {
                if (goWindow == null)
                {
                    goWindow = Helper.FindOrCreateUI("Window", goCanvas, (string name, GameObject parent) =>
                    {
                        GameObject window = Helper.CreateGUIGameObject(name, parent);
                        Helper.SetRectTransform(window, 0, 0, 1, 1, 0.5f, 1, 0, 0, 0, 0);
                        Image img  = window.AddOrGetComponent <Image>();
                        img.type   = Image.Type.Sliced;
                        img.sprite = Resources.Instance.GetSpriteBackground();

                        VerticalLayoutGroup vertical    = window.AddComponent <VerticalLayoutGroup>();
                        vertical.childForceExpandHeight = false;
                        vertical.padding = new RectOffset(4, 4, 4, 4);
                        vertical.spacing = 2;

                        return(window);
                    });
                }

                goWinBar = Helper.FindOrCreateUI("WindowBar", goWindow, (string name, GameObject parent) =>
                {
                    GameObject winbar = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(winbar, 0, 1, 1, 1, 0.5f, 1, 0, 0, 0, 0);
                    winbar.AddOrGetComponent <CanvasRenderer>();

                    Image img = winbar.AddOrGetComponent <Image>();
                    img.color = new Color(0.25f, 0.5f, 1.0f);

                    DraggableRect draggable = winbar.AddComponent <DraggableRect>();
                    draggable.target        = goWindow.GetComponent <RectTransform>();

                    LayoutElement layout   = winbar.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;

                    HorizontalLayoutGroup hor  = winbar.AddComponent <HorizontalLayoutGroup>();
                    hor.childForceExpandHeight = false;
                    hor.childForceExpandWidth  = false;
                    hor.childAlignment         = TextAnchor.MiddleCenter;

                    return(winbar);
                });

                goTitle = Helper.FindOrCreateUI("WindowTitle", goWinBar, (string name, GameObject parent) =>
                {
                    GameObject title = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(title, 0, 0, 1, 1, 0.5f, 0.5f, 0, 0, 0, 0);

                    LayoutElement layout = title.AddComponent <LayoutElement>();
                    layout.flexibleWidth = 1;

                    Text text      = title.AddOrGetComponent <Text>();
                    text.text      = "Overlay UI";
                    text.alignment = TextAnchor.MiddleCenter;
                    text.color     = Color.white;
                    text.font      = Resources.Instance.GetFontTilte();
                    text.fontSize  = Helper.FontSize();

                    return(title);
                });

                goTabBar = Helper.FindOrCreateUI("TabBar", goWindow, (string name, GameObject parent) =>
                {
                    GameObject tabBar = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(tabBar, 0, 0, 1, 0, 0.5f, 1, 0, 0, 0, 0);

                    LayoutElement layout   = tabBar.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;

                    HorizontalLayoutGroup hor  = tabBar.AddComponent <HorizontalLayoutGroup>();
                    hor.childForceExpandHeight = false;
                    hor.childForceExpandWidth  = false;

                    return(tabBar);
                });

                goClose = Helper.FindOrCreateUI("CloseButton", (string name, GameObject parent) =>
                {
                    GameObject close = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(close, 1, 0, 1, 1, 1, 0.5f, 32.0f - 4.0f, -4.0f, -2.0f, 0);
                    Image img  = close.AddOrGetComponent <Image>();
                    img.sprite = Resources.Instance.GetSpriteButton();
                    img.type   = Image.Type.Sliced;

                    LayoutElement layout   = close.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;
                    layout.preferredWidth  = 32.0f;

                    return(close);
                }, goWinBar, goTabBar);

                GameObject goCloseCross = Helper.FindOrCreateUI("CloseCross", goClose, (string name, GameObject parent) =>
                {
                    GameObject cimg = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(cimg, 0, 0, 1, 1, 0.5f, 0.5f, 0, 0, 0, 0);
                    Image img  = cimg.AddOrGetComponent <Image>();
                    img.sprite = Silver.UI.Resources.GetStaticSpriteCross();
                    img.type   = Image.Type.Simple;

                    return(cimg);
                });

                Button but = goClose.AddOrGetComponent <Button>();

                but.onClick.RemoveAllListeners();
                but.onClick.AddListener(() => { Visible = false; });

                GameObject goTabView = Helper.FindOrCreateUI("TabScrollView", goTabBar, (string name, GameObject parent) =>
                {
                    GameObject tabview = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(tabview, 0, 0, 1, 0, 0.5f, 1, 0, 0, 0, 0);
                    tabview.AddOrGetComponent <Image>();
                    Mask mask            = tabview.AddOrGetComponent <Mask>();
                    mask.showMaskGraphic = false;

                    LayoutElement layout   = tabview.AddComponent <LayoutElement>();
                    layout.preferredHeight = 32.0f;
                    layout.flexibleWidth   = 1;

                    return(tabview);
                });

                GameObject goTabScroll = Helper.FindOrCreateUI("TabScrollRect", goTabView, (string name, GameObject parent) =>
                {
                    GameObject tabscroll = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(tabscroll, 0, 0, 1, 1, 0.5f, 1, 0, 0, 0, -2.0f);
                    ScrollRect scroll = tabscroll.AddOrGetComponent <ScrollRect>();

                    scroll.vertical          = false;
                    scroll.scrollSensitivity = 8.0f;

                    return(tabscroll);
                });

                goTabContent = Helper.FindOrCreateUI("TabContent", goTabScroll, (string name, GameObject parent) =>
                {
                    GameObject tabcontent = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(tabcontent, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
                    tabcontent.AddOrGetComponent <CanvasRenderer>();

                    HorizontalLayoutGroup horizontal = tabcontent.AddComponent <HorizontalLayoutGroup>();
                    horizontal.childForceExpandWidth = false;
                    horizontal.padding = new RectOffset(4, 4, 0, 0);
                    horizontal.spacing = 2;

                    ContentSizeFitter fitter = tabcontent.AddComponent <ContentSizeFitter>();
                    fitter.horizontalFit     = ContentSizeFitter.FitMode.PreferredSize;

                    return(tabcontent);
                });

                ScrollRect tabscrollScrollRect = goTabScroll.AddOrGetComponent <ScrollRect>();

                tabscrollScrollRect.content = goTabContent.AddOrGetComponent <RectTransform>();

                goInnerView = Helper.FindOrCreateUI("InnerScrollView", goWindow, (string name, GameObject parent) =>
                {
                    GameObject innerview = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(innerview, 0, 0, 1, 1, 0.5f, 0, -4.0f, 0.0f, 0, 2.0f);
                    innerview.AddOrGetComponent <Image>();
                    Mask mask            = innerview.AddOrGetComponent <Mask>();
                    mask.showMaskGraphic = false;

                    LayoutElement layout  = innerview.AddComponent <LayoutElement>();
                    layout.flexibleHeight = 1.0f;

                    return(innerview);
                });

                goInnerScroll = Helper.FindOrCreateUI("InnerScrollRect", goInnerView, (string name, GameObject parent) =>
                {
                    GameObject innerscroll = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(innerscroll, 0, 0, 1, 1, 0, 1, -24.0f, -24.0f, 0, 0);
                    ScrollRect scroll        = innerscroll.AddOrGetComponent <ScrollRect>();
                    scroll.scrollSensitivity = 8.0f;

                    return(innerscroll);
                });

                goEmptyContent = Helper.FindOrCreateUI("EmptyContent", goInnerScroll, (string name, GameObject parent) =>
                {
                    return(Helper.CreateGUIGameObject(name, parent));
                });

                goVerticalScrollBar = Helper.FindOrCreateUI("InnerVerticalScrollbar", goInnerView, (string name, GameObject parent) =>
                {
                    GameObject vertscrollbar = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(vertscrollbar, 1, 0, 1, 1, 1, 1, 20.0f, -24.0f, -2.0f, -2.0f);
                    Scrollbar scrollbar = Helper.AddScrollbar(vertscrollbar);
                    scrollbar.direction = Scrollbar.Direction.BottomToTop;

                    return(vertscrollbar);
                });

                goHorizontalScrollBar = Helper.FindOrCreateUI("InnerHorizontalScrollbar", goInnerView, (string name, GameObject parent) =>
                {
                    GameObject horiscrollbar = Helper.CreateGUIGameObject(name, parent);
                    Helper.SetRectTransform(horiscrollbar, 0, 0, 1, 0, 0, 0, -24.0f, 20.0f, 2.0f, 2.0f);
                    Helper.AddScrollbar(horiscrollbar);
                    return(horiscrollbar);
                });

                ScrollRect innerScrollScrollRect = goInnerScroll.AddOrGetComponent <ScrollRect>();

                innerScrollScrollRect.verticalScrollbar   = goVerticalScrollBar.GetComponent <Scrollbar>();
                innerScrollScrollRect.horizontalScrollbar = goHorizontalScrollBar.GetComponent <Scrollbar>();
                innerScrollScrollRect.content             = Helper.SetRectTransform(goEmptyContent, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0);

                RefreshWindowsBarVisibility();
            }