public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_BUTTON, layer.name, parent); UnityEngine.UI.Button button = node.InitComponent <UnityEngine.UI.Button>(); if (layer.images != null) { for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) { Image image = layer.images[imageIndex]; string lowerName = image.name.ToLower(); if (image.imageType == ImageType.Image && lowerName.StartsWith("n_") || lowerName.StartsWith("p_") || lowerName.StartsWith("d_") || lowerName.StartsWith("h_")) { if (image.arguments == null || image.arguments.Length == 0) { SetSpriteSwipe(image, button); } else { SetColorSwipe(image, button); } } else { ctrl.DrawImage(image, node); } } } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_TOGGLE, layer.name, parent);// GameObject.Instantiate(temp) as UnityEngine.UI.Toggle; UnityEngine.UI.Toggle toggle = node.InitComponent <UnityEngine.UI.Toggle>(); if (layer.images != null) { for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) { Image image = layer.images[imageIndex]; string lowerName = image.name.ToLower(); if (lowerName.StartsWith("b_")) { PSDImportUtility.SetPictureOrLoadColor(image, toggle.targetGraphic); PSDImportUtility.SetRectTransform(image, toggle.GetComponent <RectTransform>()); } else if (lowerName.StartsWith("m_")) { PSDImportUtility.SetPictureOrLoadColor(image, toggle.graphic); } else { ctrl.DrawImage(image, node); } } } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_IMAGE, layer.name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image; UnityEngine.UI.Image panel = node.GetComponent <UnityEngine.UI.Image>(); ctrl.DrawLayers(layer.layers, node);//子节点 for (int i = 0; i < layer.images.Length; i++) { Image image = layer.images[i]; if (image.name.ToLower().StartsWith("b_")) { PSDImportUtility.SetPictureOrLoadColor(image, panel); PSDImportUtility.SetRectTransform(image, panel.GetComponent <RectTransform>()); panel.name = layer.name; } else { ctrl.DrawImage(image, node); } } return(node); }
private UINode DrawRawImage(Image image, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_RawIMAGE, image.name, parent); UnityEngine.UI.RawImage pic = node.GetComponent <UnityEngine.UI.RawImage>(); PSDImportUtility.SetPictureOrLoadColor(image, pic); PSDImportUtility.SetRectTransform(image, pic.GetComponent <RectTransform>()); return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_SCROLLBAR, layer.name, parent); Scrollbar scrollBar = node.InitComponent <Scrollbar>(); string type = layer.arguments[0].ToUpper(); switch (type) { case "R": scrollBar.direction = Scrollbar.Direction.RightToLeft; break; case "L": scrollBar.direction = Scrollbar.Direction.LeftToRight; break; case "T": scrollBar.direction = Scrollbar.Direction.TopToBottom; break; case "B": scrollBar.direction = Scrollbar.Direction.BottomToTop; break; default: break; } for (int i = 0; i < layer.images.Length; i++) { Image image = layer.images[i]; string lowerName = image.name.ToLower(); UnityEngine.UI.Image graph = null; if (lowerName.StartsWith("b_")) { graph = scrollBar.GetComponent <UnityEngine.UI.Image>(); PSDImportUtility.SetRectTransform(image, scrollBar.GetComponent <RectTransform>()); scrollBar.name = layer.name; } else if (lowerName.StartsWith("h_")) { graph = scrollBar.handleRect.GetComponent <UnityEngine.UI.Image>(); } if (graph == null) { //忽略Scorllbar其他的artLayer continue; } PSDImportUtility.SetPictureOrLoadColor(image, graph); } return(node); }
public void BeginDrawUILayers() { UINode empty = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_EMPTY, PSDImportUtility.baseFilename, PSDImportUtility.uinode); RectTransform rt = empty.InitComponent <RectTransform>(); rt.sizeDelta = new Vector2(psdUI.psdSize.width, psdUI.psdSize.height); for (int layerIndex = 0; layerIndex < psdUI.layers.Length; layerIndex++) { DrawLayer(psdUI.layers[layerIndex], empty); } AssetDatabase.Refresh(); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_INPUTFIELD, layer.name, parent); UnityEngine.UI.InputField inputfield = node.GetComponent <UnityEngine.UI.InputField>(); if (layer.images != null) { for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) { Image image = layer.images[imageIndex]; string lowerName = image.name.ToLower(); if (image.imageType == ImageType.Label) { if (lowerName.StartsWith("t_")) { UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.textComponent;//inputfield.transform.Find("Text").GetComponent<UnityEngine.UI.Text>(); PSDImportUtility.SetPictureOrLoadColor(image, inputfield.textComponent); int size; if (int.TryParse(image.arguments[2], out size)) { text.fontSize = size; } } else if (lowerName.StartsWith("p_")) { UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.placeholder;//.transform.Find("Placeholder").GetComponent<UnityEngine.UI.Text>(); PSDImportUtility.SetPictureOrLoadColor(image, inputfield.textComponent); int size; if (int.TryParse(image.arguments[2], out size)) { text.fontSize = size; } } } else { if (lowerName.StartsWith("b_")) { PSDImportUtility.SetPictureOrLoadColor(image, inputfield.image); PSDImportUtility.SetRectTransform(image, inputfield.GetComponent <RectTransform>()); } } } } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_EMPTY, layer.name, parent); RectTransform obj = node.GetComponent <RectTransform>(); PSDImportUtility.SetRectTransform(layer, obj, parent.GetComponent <RectTransform>()); if (layer.images != null) { for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) { Image image = layer.images[imageIndex]; ctrl.DrawImage(image, node); } } ctrl.DrawLayers(layer.layers, node); return(node); }
public UINode DrawImage(Image image, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_TEXT, image.name, parent); UnityEngine.UI.Text myText = node.GetComponent <Text>(); PSDImportUtility.SetPictureOrLoadColor(image, myText); float size; if (float.TryParse(image.arguments[2], out size)) { myText.fontSize = (int)size; } myText.text = image.arguments[3]; RectTransform rectTransform = myText.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_GROUP, layer.name, parent); UnityEngine.UI.LayoutGroup group = null; string type = layer.arguments[0].ToLower(); float span = 0; float.TryParse(layer.arguments[1], out span); switch (type) { case "v": group = node.AddComponent <UnityEngine.UI.VerticalLayoutGroup>(); group.childAlignment = TextAnchor.UpperLeft; ((UnityEngine.UI.VerticalLayoutGroup)group).spacing = span; break; case "h": group = node.AddComponent <UnityEngine.UI.HorizontalLayoutGroup>(); group.childAlignment = TextAnchor.UpperLeft; ((UnityEngine.UI.HorizontalLayoutGroup)group).spacing = span; break; } PSDImportUtility.SetRectTransform(layer, group.GetComponent <RectTransform>(), parent.GetComponent <RectTransform>()); UINode[] nodes = pSDImportCtrl.DrawImages(layer.images, node); foreach (var item in nodes) { item.anchoType = UINode.AnchoType.Left | UINode.AnchoType.Up; } nodes = pSDImportCtrl.DrawLayers(layer.layers, node); foreach (var item in nodes) { item.anchoType = UINode.AnchoType.Left | UINode.AnchoType.Up; } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_IMAGE, layer.name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image; UnityEngine.UI.Image panel = node.InitComponent <UnityEngine.UI.Image>(); ctrl.DrawLayers(layer.layers, node);//子节点 bool havebg = false; for (int i = 0; i < layer.images.Length; i++) { Image 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>(), parent.InitComponent <RectTransform>()); Color color; if (ColorUtility.TryParseHtmlString("#FFFFFF01", out color)) { panel.GetComponent <UnityEngine.UI.Image>().color = color; } panel.name = layer.name; } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_GRID, layer.name, parent); node.anchoType = UINode.AnchoType.Up | UINode.AnchoType.Left; GridLayoutGroup gridLayoutGroup = node.GetComponent <GridLayoutGroup>(); PSDImportUtility.SetRectTransform(layer, gridLayoutGroup.GetComponent <RectTransform>(), node.GetComponent <RectTransform>()); gridLayoutGroup.padding = new RectOffset(1, 1, 1, 1); gridLayoutGroup.cellSize = new Vector2(layer.size.width, layer.size.height); if (layer.arguments != null && layer.arguments.Length > 1) { string rc = layer.arguments[0]; gridLayoutGroup.constraint = rc.ToLower() == "c" ? GridLayoutGroup.Constraint.FixedColumnCount : (rc.ToLower() == "r"? GridLayoutGroup.Constraint.FixedRowCount: GridLayoutGroup.Constraint.Flexible); int count = int.Parse(layer.arguments[1]); gridLayoutGroup.constraintCount = count; } ctrl.DrawImages(layer.images, node); ctrl.DrawLayers(layer.layers, node); return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_SCROLLVIEW, layer.name, parent); UnityEngine.UI.ScrollRect scrollRect = node.InitComponent <UnityEngine.UI.ScrollRect>(); UINode childNode = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_IMAGE, "Viewport", node); scrollRect.viewport = childNode.InitComponent <RectTransform>(); Color color; if (ColorUtility.TryParseHtmlString("#FFFFFF01", out color)) { childNode.InitComponent <UnityEngine.UI.Image>().color = color; Debug.Log(color); } childNode.InitComponent <Mask>(); childNode.anchoType = UINode.AnchoType.XStretch | UINode.AnchoType.YStretch; bool havebg = false; for (int i = 0; i < layer.images.Length; i++) { Image image = layer.images[i]; if (image.name.ToLower().StartsWith("b_")) { havebg = true; UnityEngine.UI.Image graph = node.InitComponent <UnityEngine.UI.Image>(); PSDImportUtility.SetPictureOrLoadColor(image, graph); PSDImportUtility.SetRectTransform(image, scrollRect.GetComponent <RectTransform>()); } else { ctrl.DrawImage(image, node); } } if (!havebg) { PSDImportUtility.SetRectTransform(layer, scrollRect.GetComponent <RectTransform>(), parent.InitComponent <RectTransform>()); } PSDImportUtility.SetRectTransform(layer, childNode.InitComponent <RectTransform>(), scrollRect.GetComponent <RectTransform>()); if (layer.arguments != null) { string type = layer.arguments[0].ToUpper(); switch (type) { case "V": scrollRect.vertical = true; scrollRect.horizontal = false; break; case "H": scrollRect.vertical = false; scrollRect.horizontal = true; break; case "VH": case "HV": scrollRect.vertical = true; scrollRect.horizontal = true; break; default: break; } } if (layer.layers != null) { for (int i = 0; i < layer.layers.Length; i++) { Layer child = layer.layers[i]; string childLowerName = child.name; UINode c_Node = ctrl.DrawLayer(child, childNode); if (childLowerName.StartsWith("c_")) { scrollRect.content = c_Node.InitComponent <RectTransform>(); } else if (childLowerName.StartsWith("vb_")) { scrollRect.verticalScrollbar = c_Node.InitComponent <Scrollbar>(); scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHide; } else if (childLowerName.StartsWith("hb_")) { scrollRect.horizontalScrollbar = c_Node.InitComponent <Scrollbar>(); scrollRect.horizontalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHide; } } } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_SLIDER, layer.name, parent); //GameObject.Instantiate(temp) as UnityEngine.UI.Slider; UnityEngine.UI.Slider slider = node.GetComponent <UnityEngine.UI.Slider>(); string type = layer.arguments[0].ToUpper(); switch (type) { case "R": slider.direction = Slider.Direction.RightToLeft; break; case "L": slider.direction = Slider.Direction.LeftToRight; break; case "T": slider.direction = Slider.Direction.TopToBottom; break; case "B": slider.direction = Slider.Direction.BottomToTop; break; default: break; } bool haveHandle = false; for (int i = 0; i < layer.images.Length; i++) { Image image = layer.images[i]; string lowerName = image.name.ToLower(); UnityEngine.UI.Image graph = null; if (lowerName.StartsWith("b_")) { graph = slider.transform.Find("Background").GetComponent <UnityEngine.UI.Image>(); PSDImportUtility.SetRectTransform(image, slider.GetComponent <RectTransform>()); slider.name = layer.name; } else if (lowerName.StartsWith("f_")) { graph = slider.fillRect.GetComponent <UnityEngine.UI.Image>(); } else if (lowerName.StartsWith("h_")) { graph = slider.handleRect.GetComponent <UnityEngine.UI.Image>(); RectTransform rect = graph.GetComponent <RectTransform>(); rect.name = image.name; rect.sizeDelta = new Vector2(image.size.width, 0); rect.anchoredPosition = Vector2.zero; haveHandle = true; } if (graph == null) { continue; } PSDImportUtility.SetPictureOrLoadColor(image, graph); } if (!haveHandle) { UnityEngine.Object.DestroyImmediate(slider.handleRect.parent.gameObject); } return(node); }
public UINode DrawLayer(Layer layer, UINode parent) { UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_DROPDOWN, layer.name, parent); Dropdown dropdown = node.InitComponent <Dropdown>(); ScrollRect scrllRect = dropdown.template.GetComponent <ScrollRect>(); RectTransform content = scrllRect.content; Toggle toggle = content.GetComponentInChildren <Toggle>(); UINode childNode = new UINode(dropdown.template, node); childNode.transform.SetParent(PSDImportUtility.canvas.transform); childNode.anchoType = UINode.AnchoType.Down | UINode.AnchoType.XStretch; //由于设置相对坐标需要,所以修改了部分预制体的状态 childNode.ReprocessEvent = () => { RectTransform rt = childNode.InitComponent <RectTransform>(); rt.pivot = new Vector2(0.5f, 1); rt.anchoredPosition = Vector3.zero; }; for (int i = 0; i < layer.images.Length; i++) { Image image = layer.images[i]; string lowerName = image.name.ToLower(); if (lowerName.StartsWith("b1_")) { PSDImportUtility.SetPictureOrLoadColor(image, dropdown.image); PSDImportUtility.SetRectTransform(image, dropdown.GetComponent <RectTransform>()); dropdown.name = layer.name; } else if (lowerName.StartsWith("b2_")) { PSDImportUtility.SetPictureOrLoadColor(image, dropdown.template.GetComponent <Graphic>()); PSDImportUtility.SetRectTransform(image, dropdown.template); } else if (lowerName.StartsWith("b3_")) { UnityEngine.UI.Image itemimage = (UnityEngine.UI.Image)toggle.targetGraphic; PSDImportUtility.SetPictureOrLoadColor(image, itemimage); content.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, image.size.height); } else if (lowerName.StartsWith("l1_")) { PSDImportUtility.SetPictureOrLoadColor(image, dropdown.captionText); float size; if (float.TryParse(image.arguments[2], out size)) { dropdown.captionText.fontSize = (int)size; } dropdown.captionText.text = image.arguments[3]; } else if (lowerName.StartsWith("l2_")) { PSDImportUtility.SetPictureOrLoadColor(image, dropdown.itemText); float size; if (float.TryParse(image.arguments[2], out size)) { dropdown.itemText.fontSize = (int)size; } dropdown.itemText.text = image.arguments[3]; } else if (lowerName.StartsWith("m_")) { UnityEngine.UI.Image mask = (UnityEngine.UI.Image)toggle.graphic; PSDImportUtility.SetPictureOrLoadColor(image, mask); } else { ctrl.DrawImage(image, node); } } for (int i = 0; i < layer.layers.Length; i++) { Layer child = layer.layers[i]; string lowerName = child.name; if (lowerName.StartsWith("vb_")) { UINode barNode = ctrl.DrawLayer(child, childNode); scrllRect.verticalScrollbar = barNode.InitComponent <Scrollbar>(); scrllRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHide; } else { ctrl.DrawLayer(child, node); } } return(node); }