public InputFieldScroller(SliderScrollbar sliderScroller, InputField inputField) { Instances.Add(this); this.sliderScroller = sliderScroller; this.inputField = inputField; inputField.onValueChanged.AddListener(OnTextChanged); inputRect = inputField.GetComponent <RectTransform>(); layoutElement = inputField.gameObject.AddComponent <LayoutElement>(); parentLayoutGroup = inputField.transform.parent.GetComponent <VerticalLayoutGroup>(); layoutElement.minHeight = 25; layoutElement.minWidth = 100; if (!canvasScaler) { canvasScaler = UIManager.CanvasRoot.GetComponent <CanvasScaler>(); } }
/// <summary> /// Create a ScrollView element. /// </summary> public static GameObject CreateScrollView(GameObject parent, string name, out GameObject content, out SliderScrollbar scroller, Color color = default) { GameObject mainObj = CreateUIObject("DynamicScrollView", parent); SetLayoutElement(mainObj, minWidth: 100, minHeight: 30, flexibleWidth: 5000, flexibleHeight: 5000); Image mainImage = mainObj.AddComponent <Image>(); mainImage.type = Image.Type.Filled; mainImage.color = (color == default) ? new Color(0.3f, 0.3f, 0.3f, 1f) : color; GameObject viewportObj = CreateUIObject("Viewport", mainObj); var viewportRect = viewportObj.GetComponent <RectTransform>(); viewportRect.anchorMin = Vector2.zero; viewportRect.anchorMax = Vector2.one; viewportRect.pivot = new Vector2(0.0f, 1.0f); viewportRect.sizeDelta = new Vector2(-15.0f, 0.0f); viewportRect.offsetMax = new Vector2(-20.0f, 0.0f); viewportObj.AddComponent <Image>().color = Color.white; viewportObj.AddComponent <Mask>().showMaskGraphic = false; content = CreateUIObject("Content", viewportObj); var contentRect = content.GetComponent <RectTransform>(); contentRect.anchorMin = new Vector2(0.0f, 1.0f); contentRect.anchorMax = new Vector2(1.0f, 1.0f); contentRect.pivot = new Vector2(0.0f, 1.0f); contentRect.sizeDelta = new Vector2(5f, 0f); contentRect.offsetMax = new Vector2(0f, 0f); var contentFitter = content.AddComponent <ContentSizeFitter>(); contentFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained; contentFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; SetLayoutGroup <VerticalLayoutGroup>(content, true, true, true, true, 5, 5, 5, 5, 5); GameObject scrollBarObj = CreateUIObject("DynamicScrollbar", mainObj); var scrollbarLayout = scrollBarObj.AddComponent <VerticalLayoutGroup>(); scrollbarLayout.childForceExpandHeight = true; scrollbarLayout.SetChildControlHeight(true); RectTransform scrollBarRect = scrollBarObj.GetComponent <RectTransform>(); scrollBarRect.anchorMin = new Vector2(1.0f, 0.0f); scrollBarRect.anchorMax = new Vector2(1.0f, 1.0f); scrollBarRect.sizeDelta = new Vector2(15.0f, 0.0f); scrollBarRect.offsetMin = new Vector2(-15.0f, 0.0f); GameObject hiddenBar = CreateScrollbar(scrollBarObj, "HiddenScrollviewScroller", out Scrollbar hiddenScroll); hiddenScroll.SetDirection(Scrollbar.Direction.BottomToTop, true); for (int i = 0; i < hiddenBar.transform.childCount; i++) { var child = hiddenBar.transform.GetChild(i); child.gameObject.SetActive(false); } SliderScrollbar.CreateSliderScrollbar(scrollBarObj, out Slider scrollSlider); // Back to the main scrollview ScrollRect, setting it up now that we have all references. var scrollRect = mainObj.AddComponent <ScrollRect>(); scrollRect.horizontal = false; scrollRect.vertical = true; scrollRect.verticalScrollbar = hiddenScroll; scrollRect.movementType = ScrollRect.MovementType.Clamped; scrollRect.scrollSensitivity = 35; scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport; scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.Permanent; scrollRect.viewport = viewportRect; scrollRect.content = contentRect; // Create a custom DynamicScrollbar module scroller = new SliderScrollbar(hiddenScroll, scrollSlider); return(mainObj); }
public PageHandler(SliderScrollbar scroll) { ItemsPerPage = 30; m_scrollbar = scroll; }