public override void HandleTypeAfterParse(BSMLParser.ComponentTypeWithData componentType, BSMLParserParams parserParams)
        {
            BSMLScrollableContainer scrollView = componentType.component as BSMLScrollableContainer;

            if (componentType.data.TryGetValue("id", out string id))
            {
                scrollView.PageUpButton = parserParams.GetObjectsWithTag("PageUpFor:" + id)
                                          .Select(o => o.GetComponent <Button>())
                                          .Where(b => b != null)
                                          .FirstOrDefault();

                scrollView.PageDownButton = parserParams.GetObjectsWithTag("PageDownFor:" + id)
                                            .Select(o => o.GetComponent <Button>())
                                            .Where(b => b != null)
                                            .FirstOrDefault();

                scrollView.ScrollIndicator = parserParams.GetObjectsWithTag("IndicatorFor:" + id)
                                             .Select(o => o.GetComponent <VerticalScrollIndicator>() ?? o.GetComponent <BSMLScrollIndicator>())
                                             .Where(i => i != null)
                                             .FirstOrDefault();
            }

            scrollView.RefreshContent();
            scrollView.RefreshButtons();
            //scrollView.ScrollAt(0, false);
        }
示例#2
0
 public override void HandleTypeAfterChildren(BSMLParser.ComponentTypeWithData componentType, BSMLParserParams parserParams)
 {
     foreach (GameObject go in parserParams.GetObjectsWithTag("ScrollFocus"))
     {
         go.AddComponent <ItemForFocussedScrolling>();
     }
 }
        private void Parsed()
        {
            var coverImages = parserParams.GetObjectsWithTag("coverImage").Select(x => x.GetComponent <ImageView>());

            foreach (var image in coverImages)
            {
                image.sprite = icon;
            }

            var infoTexts = parserParams.GetObjectsWithTag("infoText").Select(x => x.GetComponent <CurvedTextMeshPro>());

            foreach (var infoText in infoTexts)
            {
                infoText.text = text;
            }
        }
示例#4
0
        public async Task Open(bool notify = true)
        {
            if (_firstActivation)
            {
                ParserParams = await _bsmlDecorator.ParseFromResourceAsync(_resourceName, gameObject, this);

                gameObject.SetActive(false);
                _firstActivation = false;

                foreach (var obj in ParserParams.GetObjectsWithTag("canvas"))
                {
                    var newParent = obj.transform.parent.CreateGameObject("CanvasContainer");
                    newParent.AddComponent <RectTransform>();
                    newParent.AddComponent <VerticalLayoutGroup>();
                    newParent.AddComponent <ContentSizeFitter>().horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
                    newParent.AddComponent <LayoutElement>();

                    newParent.AddComponent <Canvas>();
                    var canvasScaler = newParent.AddComponent <CanvasScaler>();
                    canvasScaler.referencePixelsPerUnit = 10;
                    canvasScaler.scaleFactor            = 3.44f;

                    newParent.AddComponent <CurvedCanvasSettings>();
                    UIHelpers.AddVrRaycaster(newParent, _raycasterWithCache);

                    obj.transform.SetParent(newParent.transform, false);
                }

                await Init();
            }

            gameObject.SetActive(true);
            if (notify)
            {
                DidOpen();
            }
        }
示例#5
0
 internal void SetupPostParse()
 {
     selectedTags = parserParams.GetObjectsWithTag("selected");
     hoveredTags  = parserParams.GetObjectsWithTag("hovered");
     neitherTags  = parserParams.GetObjectsWithTag("un-selected-un-hovered");
 }