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>();
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
 public PageHandler(SliderScrollbar scroll)
 {
     ItemsPerPage = 30;
     m_scrollbar  = scroll;
 }