public override void AfterGenerate(UGUINode node) { base.AfterGenerate(node); ContentSizeFitter content = node.InitComponent <ContentSizeFitter>(); content.horizontalFit = ContentSizeFitter.FitMode.PreferredSize; content.verticalFit = ContentSizeFitter.FitMode.PreferredSize; }
private void SetLayoutItem(UGUINode childNode, Rect rect) { var layout = childNode.transform.gameObject.AddComponent <LayoutElement>(); layout.preferredWidth = rect.width; layout.preferredHeight = rect.height; childNode.anchoType = AnchoType.Left | AnchoType.Up; }
/// <summary> /// 空器 /// </summary> /// <param name="childNode"></param> /// <param name="scrollRect"></param> private void DrawConent(UGUINode childNode, ScrollRect scrollRect) { childNode.inversionReprocess += (x) => { var content = childNode.InitComponent <RectTransform>(); scrollRect.content = content; scrollRect.content.anchoredPosition = Vector2.zero; }; }
public override void AfterGenerate(UGUINode node) { base.AfterGenerate(node); var dropDown = node.InitComponent <Dropdown>(); RectTransform rt = dropDown.template; rt.pivot = new Vector2(0.5f, 1); rt.anchoredPosition = Vector3.zero; }
public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent) { UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent); Scrollbar scrollbar = node.InitComponent <Scrollbar>(); SetScrollBarDirection(scrollbar, layer); DrawImages(layer.images, scrollbar, node); return(node); }
public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent) { UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent); ScrollRect scrollRect = node.InitComponent <UnityEngine.UI.ScrollRect>(); SetScrollViewDirection(layer, scrollRect, layer.directionAxis); var viewNode = DrawViewNode(layer, scrollRect, node); DrawImages(layer, node, scrollRect); DrawChildLayers(layer, viewNode, scrollRect); return(node); }
private void DrawImages(Data.GroupNode layer, UGUINode node, ScrollRect scrollRect) { for (int i = 0; i < layer.images.Count; i++) { Data.ImgNode image = layer.images[i]; if (MatchAddress(image.Name, backgroundAddress)) { InitScrollViewBackground(node, image, scrollRect); } else { ctrl.DrawImage(image, node); } } }
public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent) { UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent); Dropdown dropdown = node.InitComponent <Dropdown>(); ScrollRect scrllRect = dropdown.template.GetComponent <ScrollRect>(); RectTransform content = scrllRect.content; Toggle toggle = content.GetComponentInChildren <Toggle>(); UGUINode tempNode = CreateNormalNode(dropdown.template.gameObject, layer.rect, node); tempNode.anchoType = AnchoType.Down | AnchoType.XStretch; DrawImages(node, layer, dropdown, toggle, content); DrawSubLayers(layer, tempNode, scrllRect); return(node); }
public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent) { UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent); node.anchoType = AnchoType.Up | AnchoType.Left; if (layer.children != null) { ctrl.DrawLayers(layer.children.ConvertAll(x => x as Data.GroupNode).ToArray(), node); } if (layer.images != null) { ctrl.DrawImages(layer.images.ToArray(), node); } InitGrid(node, layer); return(node); }
/// <summary> /// 绘制所有image /// </summary> /// <param name="node"></param> /// <param name="layer"></param> /// <param name="dropdown"></param> /// <param name="toggle"></param> /// <param name="content"></param> private void DrawImages(UGUINode node, Data.GroupNode layer, Dropdown dropdown, Toggle toggle, RectTransform content) { for (int i = 0; i < layer.images.Count; i++) { Data.ImgNode image = layer.images[i]; if (MatchIDAddress(image.Name, 1, backgroundsFormat)) { PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.image); SetRectTransform(image.rect, dropdown.GetComponent <RectTransform>()); dropdown.name = layer.displayName; } else if (MatchIDAddress(image.Name, 2, backgroundsFormat)) { PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.template.GetComponent <Graphic>()); SetRectTransform(image.rect, dropdown.template); } else if (MatchIDAddress(image.Name, 3, backgroundsFormat)) { UnityEngine.UI.Image itemimage = (UnityEngine.UI.Image)toggle.targetGraphic; PSDImporterUtility.SetPictureOrLoadColor(image, itemimage); content.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, image.rect.height); } else if (MatchIDAddress(image.Name, 1, titlesFormat)) { PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.captionText); } else if (MatchIDAddress(image.Name, 2, titlesFormat)) { PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.itemText); } else if (MatchAddress(image.Name, maskAddress)) { UnityEngine.UI.Image mask = (UnityEngine.UI.Image)toggle.graphic; mask.enabled = true; PSDImporterUtility.SetPictureOrLoadColor(image, mask); } else { ctrl.DrawImage(image, node); } } }
/// <summary> /// 初始化组 /// </summary> /// <param name="layer"></param> /// <param name="node"></param> private void InitLayoutGroup(Data.GroupNode layer, UGUINode node) { HorizontalOrVerticalLayoutGroup group = null; switch (layer.directionAxis) { case DirectionAxis.Horizontal: group = node.InitComponent <UnityEngine.UI.HorizontalLayoutGroup>(); break; case DirectionAxis.Vertical: default: group = node.InitComponent <UnityEngine.UI.VerticalLayoutGroup>(); break; } if (group) { (group as UnityEngine.UI.VerticalLayoutGroup).spacing = layer.spacing; group.childAlignment = TextAnchor.UpperLeft; } }
/// <summary> /// 滑动条绘制 /// </summary> /// <param name="layer"></param> /// <param name="tempNode"></param> /// <param name="scrollRect"></param> private void DrawSubLayers(Data.GroupNode layer, UGUINode tempNode, ScrollRect scrollRect) { if (layer.children != null) { for (int i = 0; i < layer.children.Count; i++) { Data.GroupNode child = layer.children[i] as Data.GroupNode; if (MatchAddress(child.displayName, vbarAddress)) { UGUINode barNode = ctrl.DrawLayer(child, tempNode); scrollRect.verticalScrollbar = barNode.InitComponent <Scrollbar>(); scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHide; barNode.anchoType = AnchoType.Right | AnchoType.YCenter; } else { ctrl.DrawLayer(child, tempNode); } } } }
private void InitGrid(UGUINode node, Data.GroupNode layer) { GridLayoutGroup gridLayoutGroup = node.InitComponent <GridLayoutGroup>(); gridLayoutGroup.padding = new RectOffset(1, 1, 1, 1); gridLayoutGroup.cellSize = new Vector2(layer.rect.width, layer.rect.height); switch (layer.directionAxis) { case DirectionAxis.Horizontal: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount; break; case DirectionAxis.Vertical: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount; break; default: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.Flexible; break; } gridLayoutGroup.constraintCount = layer.constraintCount; }
public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent) { UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent); if (layer.children != null) { foreach (Data.GroupNode item in layer.children) { var childNode = ctrl.DrawLayer(item, node); SetLayoutItem(childNode, item.rect); } } if (layer.images != null) { foreach (Data.ImgNode item in layer.images) { var childNode = ctrl.DrawImage(item, node); SetLayoutItem(childNode, item.rect); } } InitLayoutGroup(layer, node); return(node); }
private void InitScrollViewBackground(UGUINode node, Data.ImgNode image, ScrollRect scrollRect) { UnityEngine.UI.Image graph = node.InitComponent <UnityEngine.UI.Image>(); PSDImporterUtility.SetPictureOrLoadColor(image, graph); SetRectTransform(image.rect, scrollRect.GetComponent <RectTransform>()); }