public static YuLegoDropdownOptionMeta Create(YuLegoDropdown.OptionData optionData) { var meta = new YuLegoDropdownOptionMeta { Text = optionData.text, SpriteId = optionData.image == null ? null : optionData.image.name }; return(meta); }
public static LegoDropdownMeta Create(YuLegoDropdown dropdown) { var meta = new LegoDropdownMeta { Transition = dropdown.transition.ToString().AsEnum <LegoTransition>(), ColorTintMeta = LegoColorTintMeta.Create(dropdown), OptionMetas = new List <YuLegoDropdownOptionMeta>(), }; var dropdownImage = dropdown.RectTransform.GetComponent <YuLegoImage>(); meta.DropdownImageMeta = LegoImageMeta.Create(dropdownImage); foreach (var optionData in dropdown.options) { var optionMeta = YuLegoDropdownOptionMeta.Create(optionData); meta.OptionMetas.Add(optionMeta); } var label = dropdown.RectTransform.Find("Label") .GetComponent <YuLegoText>(); meta.LabelRectMeta = LegoRectTransformMeta.Create(label.rectTransform); meta.LabelTextMeta = LegoTextMeta.Create(label); var arrow = dropdown.RectTransform.Find("Arrow") .GetComponent <YuLegoImage>(); meta.ArrowRectMeta = LegoRectTransformMeta.Create(arrow.RectTransform); meta.ArrowImageMeta = LegoImageMeta.Create(arrow); var template = dropdown.RectTransform.Find("Template") .GetComponent <RectTransform>(); meta.TemplateRectMeta = LegoRectTransformMeta.Create(template); meta.TemplateImageMeta = LegoImageMeta.Create(template.GetComponent <YuLegoImage>()); var viewport = template.Find("Viewport").GetComponent <RectTransform>(); meta.ViewPortRectMeta = LegoRectTransformMeta.Create(viewport); meta.ViewPortImageMeta = LegoImageMeta.Create(viewport.GetComponent <YuLegoImage>()); var content = viewport.Find("Content").GetComponent <RectTransform>(); meta.ContentRectMeta = LegoRectTransformMeta.Create(content); var item = content.Find("Item").GetComponent <RectTransform>(); meta.ItemRootRectMeta = LegoRectTransformMeta.Create(item); var itemRootToggle = item.GetComponent <YuLegoToggle>(); meta.ItemTransition = itemRootToggle.transition.ToString().AsEnum <LegoTransition>(); meta.ItemRootColorTintMeta = LegoColorTintMeta.Create(itemRootToggle); meta.ItemRootTargetGraphicId = itemRootToggle.targetGraphic.name; var itemBackground = item.Find("Item Background").GetComponent <RectTransform>(); meta.ItemBackgroundRectMeta = LegoRectTransformMeta.Create(itemBackground); meta.ItemBackgroundImageMeta = LegoImageMeta.Create(itemBackground.GetComponent <YuLegoImage>()); var itemCheckmark = item.Find("Item Checkmark").GetComponent <RectTransform>(); meta.ItemCheckmarkRectMeta = LegoRectTransformMeta.Create(itemCheckmark); meta.ItemCheckmarkImageMeta = LegoImageMeta.Create(itemCheckmark.GetComponent <YuLegoImage>()); var itemLabel = item.Find("Item Label").GetComponent <RectTransform>(); meta.ItemLabelRectMeta = LegoRectTransformMeta.Create(itemLabel); meta.ItemLabelTextMeta = LegoTextMeta.Create(itemLabel.GetComponent <YuLegoText>()); var scrollbar = template.Find("Scrollbar").GetComponent <RectTransform>(); meta.ScrollbarRectMeta = LegoRectTransformMeta.Create(scrollbar); meta.ScrollbarImageMeta = LegoImageMeta.Create(scrollbar.GetComponent <YuLegoImage>()); var slidingArea = scrollbar.Find("Sliding Area").GetComponent <RectTransform>(); meta.SlidingAreaRectMeta = LegoRectTransformMeta.Create(slidingArea); var slidingAreaHandle = slidingArea.Find("Handle").GetComponent <RectTransform>(); meta.ScrollbarHandleRectMeta = LegoRectTransformMeta.Create(slidingAreaHandle); meta.ScrollbarHandleImageMeta = LegoImageMeta.Create(slidingAreaHandle.GetComponent <YuLegoImage>()); return(meta); }