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); }
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); }