Esempio n. 1
0
        public static IgniteWindow Create(
            string name,
            Vector2?anchoredPosition = null,
            Vector2?windowSize       = null,
            bool open            = true,
            bool hideCloseButton = false,
            bool hideFoldToggle  = false,
            bool hideScrollbar   = false,
            bool hideHeader      = false,
            bool viewportRaycast = false,
            bool fixedSize       = false,
            bool fixedPosition   = false,
            bool stretch         = false)
        {
            var window = Instantiate(Resources.Load <GameObject>("IgniteGUI/Window")).GetComponent <IgniteWindow>();

            IgniteGUI.AddWindow(window.GetInstanceID(), window);

            window.gameObject.name = name + "(" + window.GetInstanceID() + ")";
            window.header.SetName(name);
            window.contentLayoutGroup.spacing = IgniteGUISettings.ElementSpacing;
            window.dragArea.GetComponent <RectTransform>().sizeDelta = new Vector2(IgniteGUISettings.ElementHeight, IgniteGUISettings.ElementHeight);
            window.dragAreaImage.rectTransform.sizeDelta             = new Vector2(IgniteGUISettings.ElementHeight, IgniteGUISettings.ElementHeight);

            // 座標設定
            if (anchoredPosition.HasValue)
            {
                window.OnInitialize.AddListener(() => window.RectTransform.anchoredPosition = anchoredPosition.Value);
            }
            else
            {
                window.OnInitialize.AddListener(() => IgniteGUI.SetWindowPos(window));
            }

            // サイズ設定
            if (stretch)
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.RectTransform.sizeDelta        = Screen.safeArea.size;
                    window.RectTransform.anchoredPosition = Vector2.zero;
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - (hideHeader ? 0 : IgniteGUISettings.ElementHeight));
                });
            }
            else if (windowSize.HasValue)
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.RectTransform.sizeDelta = windowSize.Value;
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - (hideHeader ? 0 : IgniteGUISettings.ElementHeight));
                });
            }
            else
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.RectTransform.sizeDelta = IgniteGUISettings.DefaultWindowSize;
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - (hideHeader ? 0 : IgniteGUISettings.ElementHeight));
                });
            }


            // 初期折りたたみ設定
            if (!open)
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.height = window.RectTransform.sizeDelta.y;
                    window.header.SetToggleValue(false);
                    window.dragArea.SetActive(false);
                    window.RectTransform.SetSizeDelta(y: IgniteGUISettings.ElementHeight);
                });
            }

            // 閉じるボタンを隠すか
            window.header.SetKillButtonActive(!hideCloseButton);

            // 折りたたみボタンを隠すか
            window.header.SetFoldToggleActive(!hideFoldToggle);

            // スクロールバーを隠すか
            window.scrollbar.gameObject.SetActive(!hideScrollbar);

            // 座標を固定するか
            window.draggable.enabled = !fixedPosition;

            // サイズを固定するか
            window.variableSizePanel.enabled = !fixedSize;
            window.dragArea.SetActive(!fixedSize);

            // ヘッダーを隠すか
            window.header.gameObject.SetActive(!hideHeader);

            // viewportのImageのRaycastTarget設定(要素部分以外をドラッグしてスクロールできるようにするか)
            window.viewportImage.raycastTarget = viewportRaycast;

            return(window);
        }
Esempio n. 2
0
        public static IgniteWindow Create(string name, Vector2?anchoredPosition = null, Vector2?windowSize = null, bool open = true, bool hideCloseButton = false, bool fixedSize = false, bool fixedPosition = false, bool stretch = false)
        {
            var window = Instantiate(Resources.Load <GameObject>("IgniteGUI/Window")).GetComponent <IgniteWindow>();

            IgniteGUI.AddWindow(window.GetInstanceID(), window);

            window.gameObject.name = name + "(" + window.GetInstanceID() + ")";
            window.header.SetName(name);
            window.contentLayoutGroup.spacing = IgniteGUISettings.ElementSpacing;
            window.dragArea.GetComponent <RectTransform>().sizeDelta = new Vector2(IgniteGUISettings.ElementHeight, IgniteGUISettings.ElementHeight);
            window.dragAreaImage.rectTransform.sizeDelta             = new Vector2(IgniteGUISettings.ElementHeight, IgniteGUISettings.ElementHeight);

            // 座標設定
            if (anchoredPosition.HasValue)
            {
                window.OnInitialize.AddListener(() => window.RectTransform.anchoredPosition = anchoredPosition.Value);
            }
            else
            {
                window.OnInitialize.AddListener(() => IgniteGUI.SetWindowPos(window));
            }

            // サイズ設定
            if (windowSize.HasValue)
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.RectTransform.sizeDelta = windowSize.Value;
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - IgniteGUISettings.ElementHeight);
                });
            }
            else
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.RectTransform.sizeDelta = IgniteGUISettings.DefaultWindowSize;
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - IgniteGUISettings.ElementHeight);
                });
            }

            if (stretch)
            {
                window.OnInitialize.AddListener(() =>
                {
#if UNITY_IOS
                    window.RectTransform.sizeDelta = Screen.safeArea.size;
#else
                    window.RectTransform.sizeDelta = new Vector2(Screen.width, Screen.height);
#endif
                    window.scrollRect.SetSizeDelta(y: window.RectTransform.sizeDelta.y - IgniteGUISettings.ElementHeight);
                });
            }

            // 初期折りたたみ設定
            if (!open)
            {
                window.OnInitialize.AddListener(() =>
                {
                    window.height = window.RectTransform.sizeDelta.y;
                    window.header.SetToggleValue(false);
                    window.dragArea.SetActive(false);
                    window.RectTransform.SetSizeDelta(y: IgniteGUISettings.ElementHeight);
                });
            }

            // 閉じるボタンを隠すか
            window.header.SetKillButtonActive(!hideCloseButton);

            // 座標を固定するか
            window.draggable.enabled = !fixedPosition;

            // サイズを固定するか
            window.variableSizePanel.enabled = !fixedSize;

            return(window);
        }