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); }
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; } }
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(); } }
internal void SetupPostParse() { selectedTags = parserParams.GetObjectsWithTag("selected"); hoveredTags = parserParams.GetObjectsWithTag("hovered"); neitherTags = parserParams.GetObjectsWithTag("un-selected-un-hovered"); }