public UGUINode DrawLayer(GroupNode layer, UGUINode parent) { UGUINode node = PSDImportUtility.InstantiateItem(GroupType.GRID, layer.Name, parent); node.anchoType = AnchoType.Up | AnchoType.Left; GridLayoutGroup gridLayoutGroup = node.InitComponent <GridLayoutGroup>(); PSDImportUtility.SetRectTransform(layer, gridLayoutGroup.GetComponent <RectTransform>()); gridLayoutGroup.padding = new RectOffset(1, 1, 1, 1); gridLayoutGroup.cellSize = new Vector2(layer.rect.width, layer.rect.height); switch (layer.direction) { case Direction.Horizontal: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount; break; case Direction.Vertical: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount; break; default: gridLayoutGroup.constraint = GridLayoutGroup.Constraint.Flexible; break; } gridLayoutGroup.constraintCount = layer.constraintCount; ctrl.DrawImages(layer.images.ToArray(), node); ctrl.DrawLayers(layer.groups.ToArray() as GroupNode[], node); return(node); }
public UGUINode DrawLayer(GroupNode layer, UGUINode parent) { UGUINode node = PSDImportUtility.InstantiateItem(GroupType.IMAGE, layer.Name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image; UnityEngine.UI.Image panel = node.InitComponent <UnityEngine.UI.Image>(); ctrl.DrawLayers(layer.groups.ToArray(), node);//子节点 bool havebg = false; for (int i = 0; i < layer.images.Count; i++) { ImgNode image = layer.images[i]; if (image.Name.ToLower().StartsWith("b_")) { havebg = true; PSDImportUtility.SetPictureOrLoadColor(image, panel); PSDImportUtility.SetRectTransform(image, panel.GetComponent <RectTransform>()); panel.name = layer.Name; } else { ctrl.DrawImage(image, node); } } if (!havebg) { PSDImportUtility.SetRectTransform(layer, panel.GetComponent <RectTransform>()); Color color; if (ColorUtility.TryParseHtmlString("#FFFFFF01", out color)) { panel.GetComponent <UnityEngine.UI.Image>().color = color; } panel.name = layer.Name; } return(node); }
public UGUINode DrawLayer(GroupNode layer, UGUINode parent) { UGUINode node = PSDImportUtility.InstantiateItem(GroupType.GROUP, layer.Name, parent); UnityEngine.UI.LayoutGroup group = null; switch (layer.direction) { case Direction.Horizontal: group = node.InitComponent <UnityEngine.UI.HorizontalLayoutGroup>(); group.childAlignment = TextAnchor.UpperLeft; break; case Direction.Vertical: group = node.InitComponent <UnityEngine.UI.VerticalLayoutGroup>(); group.childAlignment = TextAnchor.UpperLeft; break; default: break; } ((UnityEngine.UI.VerticalLayoutGroup)group).spacing = layer.spacing; PSDImportUtility.SetRectTransform(layer, group.GetComponent <RectTransform>()); UGUINode[] nodes = pSDImportCtrl.DrawImages(layer.images.ToArray(), node); foreach (var item in nodes) { item.anchoType = AnchoType.Left | AnchoType.Up; } nodes = pSDImportCtrl.DrawLayers(layer.groups.ToArray(), node); foreach (var item in nodes) { item.anchoType = AnchoType.Left | AnchoType.Up; } return(node); }