public void DrawImage(PSImage image, GameObject parent, GameObject ownObj) { //UnityEngine.UI.Image pic = AssetDatabase.LoadAssetAtPath(PSDImporterConst.PREFAB_PATH_IMAGE, typeof(UnityEngine.UI.Image)) as UnityEngine.UI.Image; //string commonImagePath = PSDImporterConst.Globle_BASE_FOLDER + image.name.Replace(".", "/") + PSDImporterConst.PNG_SUFFIX; //Debug.Log("== CommonImagePath ====" + commonImagePath); //Sprite sprite = AssetDatabase.LoadAssetAtPath(commonImagePath, typeof(Sprite)) as Sprite; UnityEngine.UI.Image pic = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, parent); string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (sprite == null) { Debug.Log("loading asset at path: " + PSDImportUtility.baseDirectory + image.name); } //string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; //Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; //UnityEngine.UI.Image myImage = GameObject.Instantiate(pic) as UnityEngine.UI.Image; pic.sprite = sprite; pic.type = UnityEngine.UI.Image.Type.Sliced; RectTransform rectTransform = pic.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); }
public void DrawLayer(Layer layer, GameObject parent) { RectTransform obj = PSDImportUtility.LoadAndInstant <RectTransform>(PSDImporterConst.ASSET_PATH_EMPTY, layer.name, parent); obj.offsetMin = Vector2.zero; obj.offsetMax = Vector2.zero; obj.anchorMin = Vector2.zero; obj.anchorMax = Vector2.one; RectTransform rectTransform = parent.GetComponent <RectTransform>(); obj.sizeDelta = rectTransform.sizeDelta; obj.anchoredPosition = rectTransform.anchoredPosition; if (layer.image != null) { //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) //{ PSImage image = layer.image; ctrl.DrawImage(image, obj.gameObject); //} } ctrl.DrawLayers(layer.layers, obj.gameObject); //obj.transform.SetParent(parent.transform, false); //parent.transform; }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { UnityEngine.UI.RawImage pic; if (ownObj != null) { pic = ownObj.AddMissingComponent <UnityEngine.UI.RawImage>(); } else { pic = PSDImportUtility.LoadAndInstant <UnityEngine.UI.RawImage>(PSDImporterConst.ASSET_PATH_RAWIMAGE, image.name, parent); } // string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; // Texture2D texture = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Texture2D)) as Texture2D; // if (texture == null) // { // Debug.Log("loading asset at path: " + PSDImportUtility.baseDirectory + image.name); // } Texture2D texture = image.LoadAssetAtPath <Texture2D>() as Texture2D; pic.texture = texture as Texture; RectTransform rectTransform = pic.GetComponent <RectTransform>(); PSDImportUtility.SetAnchorMiddleCenter(rectTransform); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); }
public void DrawLayer(Layer layer, GameObject parent) { //UnityEngine.UI.Image temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.PREFAB_PATH_IMAGE, typeof(UnityEngine.UI.Image)) as UnityEngine.UI.Image; UnityEngine.UI.Image panel = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, layer.name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image; panel.name = layer.name; ctrl.DrawLayers(layer.layers, panel.gameObject);//子节点 //for (int i = 0; i < layer.images.Length; i++) //{ PSImage image = layer.image; if (image.name.ToLower().Contains("background")) { string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; panel.sprite = sprite; RectTransform rectTransform = panel.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); //panel.transform.SetParent(parent.transform, false); //parent = parent.transform; } else { ctrl.DrawImage(image, panel.gameObject); } //} }
public void DrawLayer(Layer layer, GameObject parent) { TabGroup tabGroup = PSDImportUtility.LoadAndInstant <TabGroup>(PSDImporterConst.ASSET_PATH_TABGROUP, layer.name, parent); if (layer.layers == null) { Debug.LogError("error! bad tabgroup layers."); return; } for (int index = 0; index < layer.layers.Length; index++) { Layer subLayer = layer.layers[index]; string layerName = subLayer.name; //Shop_Tab:Shop if (layerName.ToLower().Contains("_tab")) { Tab tab = ImportTabLayer(subLayer, tabGroup.gameObject); tab.group = tabGroup; } else { ctrl.DrawLayer(subLayer, tabGroup.gameObject); } } }
public void DrawLayer(Layer layer, GameObject parent) { RectTransform obj = PSDImportUtility.LoadAndInstant <RectTransform>(PSDImporterConst.ASSET_PATH_LAYOUTELEMENT, layer.name, parent); RectTransform rectTransform = parent.GetComponent <RectTransform>(); obj.sizeDelta = new Vector2(layer.size.width, layer.size.height); obj.anchoredPosition = new Vector2(layer.position.x, layer.position.y); var le = obj.GetComponent <LayoutElement>(); le.preferredWidth = layer.size.width; le.preferredHeight = layer.size.height; if (layer.image != null) { //for (int imageIndex = 0; imageIndex < layer.layers.Length; imageIndex++) //{ PSImage image = layer.image; ctrl.DrawImage(image, obj.gameObject); //} } ctrl.DrawLayers(layer.layers, obj.gameObject); //obj.transform.SetParent(parent.transform, false); //parent.transform; }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { RectTransform halfRectTrans = parent.GetComponent <RectTransform>(); //2017.1.20注:因为已经修改为layer会创建gameobject,所以不再需要加载预设,直接在parent下组装即可 //创建一个节点存放两张半图 //var halfRectTrans = PSDImportUtility.LoadAndInstant<RectTransform>(PSDImporterConst.ASSET_PATH_HALFIMAGE, image.name, parent); PSDImportUtility.SetAnchorMiddleCenter(halfRectTrans); halfRectTrans.sizeDelta = new Vector2(image.size.width, image.size.height); halfRectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y); UnityEngine.UI.Image leftOrUpSprite = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, halfRectTrans.gameObject); UnityEngine.UI.Image rightOrLowSprite = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, halfRectTrans.gameObject); string assetPath = ""; if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) { assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; } else { assetPath = PSDImporterConst.Globle_BASE_FOLDER + image.name.Replace(".", "/") + PSDImporterConst.PNG_SUFFIX; } Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (sprite == null) { Debug.Log("loading asset at path: " + assetPath); } leftOrUpSprite.sprite = sprite; rightOrLowSprite.sprite = sprite; RectTransform lOrURectTrans = leftOrUpSprite.GetComponent <RectTransform>(); RectTransform rOrLRectTrans = rightOrLowSprite.GetComponent <RectTransform>(); Vector2 size; if (image.imageType == ImageType.UpHalfImage) { size = new Vector2(image.size.width, image.size.height / 2f); lOrURectTrans.sizeDelta = size; lOrURectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y + image.size.height / 4f);//还未设置父节点,要用绝对坐标 rOrLRectTrans.sizeDelta = size; rOrLRectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y - image.size.height / 4f); rOrLRectTrans.localEulerAngles = new Vector3(180, 0, 0); } else { size = new Vector2(image.size.width / 2f, image.size.height); lOrURectTrans.sizeDelta = size; lOrURectTrans.anchoredPosition = new Vector2(image.position.x - image.size.width / 4f, image.position.y); rOrLRectTrans.sizeDelta = size; rOrLRectTrans.anchoredPosition = new Vector2(image.position.x + image.size.width / 4f, image.position.y); rOrLRectTrans.localEulerAngles = new Vector3(0, 180, 0); } }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { RectTransform halfRectTrans = parent.GetComponent <RectTransform>(); PSDImportUtility.SetAnchorMiddleCenter(halfRectTrans); halfRectTrans.sizeDelta = new Vector2(image.size.width, image.size.height); halfRectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y); UnityEngine.UI.Image leftOrUpSprite; if (ownObj != null) { leftOrUpSprite = ownObj.AddMissingComponent <UnityEngine.UI.Image>(); } else { leftOrUpSprite = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, halfRectTrans.gameObject); } //string assetPath = ""; //if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) //{ // assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; //} //else //{ // assetPath = PSDImporterConst.Globle_BASE_FOLDER + image.name.Replace(".", "/") + PSDImporterConst.PNG_SUFFIX; //} //Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; Sprite sprite = image.LoadAssetAtPath <Sprite>() as Sprite; // if (sprite == null) // { // Debug.Log("loading asset at path: " + assetPath); // } leftOrUpSprite.sprite = sprite; RectTransform lOrURectTrans = leftOrUpSprite.GetComponent <RectTransform>(); lOrURectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y); //添加镜像组件 var mirror = lOrURectTrans.gameObject.AddComponent <UGUI.Effects.Mirror>(); if (image.imageType == ImageType.BottomHalfImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Vertical; } else if (image.imageType == ImageType.LeftHalfImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Horizontal; } else if (image.imageType == ImageType.QuarterImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Quarter; } mirror.SetNativeSize(); }
public void DrawLayer(Layer layer, GameObject parent) { UnityEngine.UI.Button button = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Button>(PSDImporterConst.ASSET_PATH_BUTTON, layer.name, parent); if (layer.layers != null) { for (int imageIndex = 0; imageIndex < layer.layers.Length; imageIndex++) { PSImage image = layer.layers[imageIndex].image; string lowerName = image.name.ToLower(); if (image.imageType != ImageType.Label && image.imageType != ImageType.Texture) { if (image.imageSource == ImageSource.Custom || image.imageSource == ImageSource.Common) { string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (image.name.ToLower().Contains("normal")) { button.image.sprite = sprite; RectTransform rectTransform = button.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); adjustButtonBG(image.imageType, button); } else if (image.name.ToLower().Contains("pressed")) { button.transition = UnityEngine.UI.Selectable.Transition.SpriteSwap; UnityEngine.UI.SpriteState state = button.spriteState; state.pressedSprite = sprite; button.spriteState = state; } else if (image.name.ToLower().Contains("disabled")) { button.transition = UnityEngine.UI.Selectable.Transition.SpriteSwap; UnityEngine.UI.SpriteState state = button.spriteState; state.disabledSprite = sprite; button.spriteState = state; } else if (image.name.ToLower().Contains("highlighted")) { button.transition = UnityEngine.UI.Selectable.Transition.SpriteSwap; UnityEngine.UI.SpriteState state = button.spriteState; state.highlightedSprite = sprite; button.spriteState = state; } } } else { //ctrl.DrawImage(image, button.gameObject); ctrl.DrawLayer(layer.layers[imageIndex], button.gameObject); } } } }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) { UnityEngine.UI.Image pic; if (ownObj != null) { pic = ownObj.AddMissingComponent <UnityEngine.UI.Image>(); } else { pic = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, parent); } RectTransform rectTransform = pic.GetComponent <RectTransform>(); rectTransform.offsetMin = new Vector2(0.5f, 0.5f); rectTransform.offsetMax = new Vector2(0.5f, 0.5f); rectTransform.anchorMin = new Vector2(0.5f, 0.5f); rectTransform.anchorMax = new Vector2(0.5f, 0.5f); string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (sprite == null) { Debug.Log("loading asset at path: " + PSDImportUtility.baseDirectory + image.name); } pic.sprite = sprite; rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); } else if (image.imageSource == ImageSource.Global) { UnityEngine.UI.Image pic; if (ownObj != null) { pic = ownObj.AddMissingComponent <UnityEngine.UI.Image>(); } else { pic = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, parent); } RectTransform rectTransform = pic.GetComponent <RectTransform>(); rectTransform.offsetMin = new Vector2(0.5f, 0.5f); rectTransform.offsetMax = new Vector2(0.5f, 0.5f); rectTransform.anchorMin = new Vector2(0.5f, 0.5f); rectTransform.anchorMax = new Vector2(0.5f, 0.5f); SetGlobalImage(pic, image); pic.name = image.name; } }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { RectTransform halfRectTrans = parent.GetComponent <RectTransform>(); //2017.1.20注:因为已经修改为layer会创建gameobject,所以不再需要加载预设,直接在parent下组装即可 //创建一个节点存放两张半图 //var halfRectTrans = PSDImportUtility.LoadAndInstant<RectTransform>(PSDImporterConst.ASSET_PATH_HALFIMAGE, image.name, parent); PSDImportUtility.SetAnchorMiddleCenter(halfRectTrans); halfRectTrans.sizeDelta = new Vector2(image.size.width, image.size.height); halfRectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y); UnityEngine.UI.Image leftOrUpSprite = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Image>(PSDImporterConst.ASSET_PATH_IMAGE, image.name, halfRectTrans.gameObject); string assetPath = ""; if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) { assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; } else { assetPath = PSDImporterConst.Globle_BASE_FOLDER + image.name.Replace(".", "/") + PSDImporterConst.PNG_SUFFIX; } Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (sprite == null) { Debug.Log("loading asset at path: " + assetPath); } leftOrUpSprite.sprite = sprite; RectTransform lOrURectTrans = leftOrUpSprite.GetComponent <RectTransform>(); lOrURectTrans.anchoredPosition = new Vector2(image.position.x, image.position.y); //添加镜像组件 var mirror = lOrURectTrans.gameObject.AddComponent <UGUI.Effects.Mirror>(); if (image.imageType == ImageType.BottomHalfImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Vertical; } else if (image.imageType == ImageType.LeftHalfImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Horizontal; } else if (image.imageType == ImageType.QuarterImage) { mirror.mirrorType = UGUI.Effects.Mirror.MirrorType.Quarter; } mirror.SetNativeSize(); }
private Tab ImportTabLayer(Layer layer, GameObject parent) { string tabName = layer.name.Substring(0, layer.name.IndexOf("_Tab")); string tag = layer.name.LastIndexOf(':') == -1 ? tabName : layer.name.Substring(layer.name.LastIndexOf(':') + 1); //Debug.LogWarning("tab name = " + tabName + " tab tag = " + tag); Tab tab = PSDImportUtility.LoadAndInstant <Tab>(PSDImporterConst.ASSET_PATH_TAB, tabName, parent); tab.tag = tag; if (layer.layers == null) { Debug.LogError("error! bad tab layers."); return(null); } for (int index = 0; index < layer.layers.Length; index++) { Layer subLayer = layer.layers[index]; PSImage image = subLayer.image; if (image != null) { string lowerName = image.name.ToLower(); if (lowerName.Contains("_tabsel")) { ctrl.DrawImage(image, tab.gameObject, tab.graphic.gameObject); } else if (lowerName.Contains("_tabunsel")) { ctrl.DrawImage(image, tab.gameObject, tab.targetGraphic.gameObject); } else { ctrl.DrawImage(image, tab.gameObject); } } else { if (subLayer.name.ToLower().Contains("_page")) { string name = subLayer.name.Substring(0, subLayer.name.Length - 5); tab.page.gameObject.name = name; ctrl.DrawLayers(subLayer.layers, tab.page.gameObject); //跳过page层,只绘制子 } else { ctrl.DrawLayer(subLayer, tab.gameObject); } } } return(tab); }
public void DrawLayer(Layer layer, GameObject parent) { //UnityEngine.UI.ScrollRect temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.PREFAB_PATH_SCROLLVIEW, typeof(UnityEngine.UI.ScrollRect)) as UnityEngine.UI.ScrollRect; UnityEngine.UI.ScrollRect scrollRect = PSDImportUtility.LoadAndInstant <UnityEngine.UI.ScrollRect>(PSDImporterConst.ASSET_PATH_SCROLLVIEW, layer.name, parent); //scrollRect.transform.SetParent(parent.transform, false); //parent = parent.transform; RectTransform rectTransform = scrollRect.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(layer.size.width, layer.size.height); rectTransform.anchoredPosition = new Vector2(layer.position.x, layer.position.y); if (layer.layers != null) { string type = layer.arguments[0].ToUpper(); switch (type) { case "V": //scrollRect.vertical = true; //scrollRect.horizontal = false; if (layer.arguments.Length > 4) { BuildGridScrollView(scrollRect, layer, parent, true); return; } else { BuildVerticalScrollView(scrollRect, layer); } break; case "H": //scrollRect.vertical = false; //scrollRect.horizontal = true; if (layer.arguments.Length > 4) { BuildGridScrollView(scrollRect, layer, parent, false); return; } else { BuildHorizonScrollView(scrollRect, layer); } break; default: break; } ctrl.DrawLayers(layer.layers, scrollRect.content.gameObject); } }
public void BeginDrawUILayers() { RectTransform obj = PSDImportUtility.LoadAndInstant <RectTransform>(PSDImporterConst.ASSET_PATH_EMPTY, PSDImportUtility.baseFilename, PSDImportUtility.canvas.gameObject); obj.offsetMin = Vector2.zero; obj.offsetMax = Vector2.zero; obj.anchorMin = Vector2.zero; obj.anchorMax = Vector2.one; for (int layerIndex = 0; layerIndex < psdUI.layers.Length; layerIndex++) { DrawLayer(psdUI.layers[layerIndex], obj.gameObject); } AssetDatabase.Refresh(); }
public void DrawLayer(Layer layer, GameObject parent) { //UnityEngine.UI.Toggle temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.PREFAB_PATH_TOGGLE, typeof(UnityEngine.UI.Toggle)) as UnityEngine.UI.Toggle; UnityEngine.UI.Toggle toggle = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Toggle>(PSDImporterConst.ASSET_PATH_TOGGLE, layer.name, parent);// GameObject.Instantiate(temp) as UnityEngine.UI.Toggle; if (layer.image != null) { //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++) //{ PSImage image = layer.image; if (image.name.ToLower().Contains("background")) { if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) { string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; toggle.image.sprite = sprite; RectTransform rectTransform = toggle.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); //rectTransform.SetParent(parent.transform, true); //PosLoader posloader = toggle.gameObject.AddComponent<PosLoader>(); //posloader.worldPos = rectTransform.position; } } else if (image.name.ToLower().Contains("mask")) { if (image.imageSource == ImageSource.Common || image.imageSource == ImageSource.Custom) { string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; toggle.graphic.GetComponent <UnityEngine.UI.Image>().sprite = sprite; } } else { ctrl.DrawImage(image, toggle.graphic.gameObject); } //} } }
public void DrawLayer(Layer layer, GameObject parent) { UnityEngine.UI.GridLayoutGroup gridLayoutGroup = PSDImportUtility.LoadAndInstant <UnityEngine.UI.GridLayoutGroup>(PSDImporterConst.ASSET_PATH_GRID, layer.name, parent); RectTransform rectTransform = gridLayoutGroup.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(layer.size.width, layer.size.height); rectTransform.anchoredPosition = new Vector2(layer.position.x, layer.position.y); gridLayoutGroup.padding = new RectOffset(); float width, height; if (float.TryParse(layer.arguments[2], out width) && float.TryParse(layer.arguments[3], out height)) { gridLayoutGroup.cellSize = new Vector2(width, height); } gridLayoutGroup.spacing = new Vector2(System.Convert.ToInt32(layer.arguments[4]), System.Convert.ToInt32(layer.arguments[5])); ctrl.DrawLayers(layer.layers, gridLayoutGroup.gameObject); }
public void DrawLayer(Layer layer, GameObject parent) { RectTransform obj = PSDImportUtility.LoadAndInstant <RectTransform>(PSDImporterConst.ASSET_PATH_EMPTY, layer.name, parent); obj.offsetMin = Vector2.zero; obj.offsetMax = Vector2.zero; obj.anchorMin = Vector2.zero; obj.anchorMax = Vector2.one; RectTransform rectTransform = parent.GetComponent <RectTransform>(); obj.sizeDelta = rectTransform.sizeDelta; obj.anchoredPosition = rectTransform.anchoredPosition; if (layer.image != null) { PSImage image = layer.image; //ctrl.DrawImage(image, obj.gameObject); ctrl.DrawImage(image, parent, obj.gameObject); } ctrl.DrawLayers(layer.layers, obj.gameObject); }
public void DrawLayer(Layer layer, GameObject parent) { UnityEngine.UI.Toggle toggle = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Toggle>(PSDImporterConst.ASSET_PATH_TOGGLE, layer.name, parent); if (layer.layers == null) { Debug.LogError("error! bad toggle layers."); return; } for (int index = 0; index < layer.layers.Length; index++) { Layer subLayer = layer.layers[index]; PSImage image = subLayer.image; if (image != null) { string lowerName = image.name.ToLower(); if (lowerName.Contains("_checkmark")) { ctrl.DrawImage(image, toggle.gameObject, toggle.graphic.gameObject); } else if (lowerName.Contains("_background")) { ctrl.DrawImage(image, toggle.gameObject, toggle.targetGraphic.gameObject); } else { ctrl.DrawImage(image, toggle.gameObject); } } else { ctrl.DrawLayer(subLayer, toggle.gameObject); } } }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { UnityEngine.UI.Text myText; if (ownObj != null) { myText = ownObj.AddComponent <UnityEngine.UI.Text>(); } else { myText = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Text>(PSDImporterConst.ASSET_PATH_TEXT, image.name, parent); } RectTransform rectTransform = myText.GetComponent <RectTransform>(); rectTransform.offsetMin = new Vector2(0.5f, 0.5f); rectTransform.offsetMax = new Vector2(0.5f, 0.5f); rectTransform.anchorMin = new Vector2(0.5f, 0.5f); rectTransform.anchorMax = new Vector2(0.5f, 0.5f); //UnityEngine.UI.Text myText = PSDImportUtility.LoadAndInstant<Text>(PSDImporterConst.ASSET_PATH_TEXT, image.name, parent); // myText.color = image.arguments[0]; // myText.font = image.arguments[1]; Debug.Log("Label Color : " + image.arguments[0]); Debug.Log("fontSize : " + image.arguments[2]); Color color; if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color)) { myText.color = color; } else { Debug.Log(image.arguments[0]); } float size; if (float.TryParse(image.arguments[2], out size)) { myText.fontSize = (int)size; } myText.text = image.arguments[3]; //设置字体,注意unity中的字体名需要和导出的xml中的一致 string fontFolder; if (image.arguments[1].ToLower().Contains("static")) { fontFolder = PSDImporterConst.FONT_STATIC_FOLDER; } else { fontFolder = fontFolder = PSDImporterConst.FONT_FOLDER; } string fontFullName = fontFolder + image.arguments[1] + PSDImporterConst.FONT_SUFIX; Debug.Log("font name ; " + fontFullName); var font = AssetDatabase.LoadAssetAtPath(fontFullName, typeof(Font)) as Font; if (font == null) { Debug.LogWarning("Load font failed : " + fontFullName); } else { myText.font = font; } //ps的size在unity里面太小,文本会显示不出来,暂时选择溢出 myText.verticalOverflow = VerticalWrapMode.Overflow; myText.horizontalOverflow = HorizontalWrapMode.Overflow; //设置对齐 if (image.arguments.Length >= 5) { myText.alignment = ParseAlignmentPS2UGUI(image.arguments[4]); } rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); }
public void DrawLayer(Layer layer, GameObject parent) { //UnityEngine.UI.Slider temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.PREFAB_PATH_SLIDER, typeof(UnityEngine.UI.Slider)) as UnityEngine.UI.Slider; UnityEngine.UI.Slider slider = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Slider>(PSDImporterConst.ASSET_PATH_SLIDER, layer.name, parent); //GameObject.Instantiate(temp) as UnityEngine.UI.Slider; RectTransform rectTransform = slider.GetComponent <RectTransform>(); rectTransform.sizeDelta = new Vector2(layer.size.width, layer.size.height); rectTransform.anchoredPosition = new Vector2(layer.position.x, layer.position.y); //slider.transform.SetParent(parent.transform, true); //parent = parent.transform; PosLoader posloader = slider.gameObject.AddComponent <PosLoader>(); posloader.worldPos = rectTransform.position; 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; } for (int i = 0; i < layer.layers.Length; i++) { PSImage image = layer.layers[i].image; string assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Sprite sprite = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite; if (image.name.ToLower().Contains("bg")) { var bgRect = slider.transform.Find("Background").GetComponent <RectTransform>(); var bgImage = bgRect.GetComponent <UnityEngine.UI.Image>(); if (image.imageType != ImageType.SliceImage) { bgImage.type = Image.Type.Simple; } bgImage.sprite = sprite; bgRect.sizeDelta = new Vector2(image.size.width, image.size.height); } else if (image.name.ToLower().Contains("fill")) { var fillImage = slider.fillRect.GetComponent <UnityEngine.UI.Image>(); if (image.imageType != ImageType.SliceImage) { fillImage.type = Image.Type.Simple; } fillImage.sprite = sprite; var fillArea = slider.transform.Find("Fill Area").GetComponent <RectTransform>(); fillArea.sizeDelta = new Vector2(image.size.width, image.size.height); } else if (image.name.ToLower().Contains("handle")) //默认没有handle { var handleRectTrans = slider.transform.Find("Handle Slide Area/Handle").GetComponent <RectTransform>(); var handleSprite = handleRectTrans.GetComponent <UnityEngine.UI.Image>(); slider.handleRect = handleRectTrans; handleSprite.sprite = sprite; handleRectTrans.gameObject.SetActive(true); } } }
public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null) { UnityEngine.UI.Text myText; if (ownObj != null) { myText = ownObj.AddMissingComponent <UnityEngine.UI.Text>(); } else { myText = PSDImportUtility.LoadAndInstant <UnityEngine.UI.Text>(PSDImporterConst.ASSET_PATH_TEXT, image.name, parent); } RectTransform rectTransform = myText.GetComponent <RectTransform>(); rectTransform.SetAnchorMiddleCenter(); //UnityEngine.UI.Text myText = PSDImportUtility.LoadAndInstant<Text>(PSDImporterConst.ASSET_PATH_TEXT, image.name, parent); // myText.color = image.arguments[0]; // myText.font = image.arguments[1]; Debug.Log("Label Color : " + image.arguments[0]); Debug.Log("fontSize : " + image.arguments[2]); Color color; if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color)) { if (image.opacity > -1) { color.a = image.opacity / 100f; Debug.Log("Opacity:" + color.a); } color.r = (float)Math.Pow((color.r), 0.45); color.g = (float)Math.Pow((color.g), 0.45); color.b = (float)Math.Pow((color.b), 0.45); myText.color = color; } else { Debug.Log(image.arguments[0]); } float size; if (float.TryParse(image.arguments[2], out size)) { myText.fontSize = (int)Math.Round(size); } myText.text = image.arguments[3]; //设置字体,注意unity中的字体名需要和导出的xml中的一致 string fontFolder; if (image.arguments[1].ToLower().Contains("static")) { fontFolder = PSDImporterConst.FONT_STATIC_FOLDER; } else { fontFolder = PSDImporterConst.FONT_FOLDER; } string fontFullName = fontFolder + image.arguments[1] + PSDImporterConst.FONT_SUFIX; Debug.Log("font name ; " + fontFullName); var font = AssetDatabase.LoadAssetAtPath(fontFullName, typeof(Font)) as Font; if (font == null) { Debug.LogWarning("Load font failed : " + fontFullName); } else { myText.font = font; } //ps的size在unity里面太小,文本会显示不出来,暂时选择溢出 myText.verticalOverflow = VerticalWrapMode.Overflow; myText.horizontalOverflow = HorizontalWrapMode.Overflow; //设置对齐 if (image.arguments.Length >= 5) { myText.alignment = ParseAlignmentPS2UGUI(image.arguments[4]); } else { // 默认居中 myText.alignment = TextAnchor.MiddleLeft; } // OutLine if (!string.IsNullOrEmpty(image.outline)) { Debug.LogError(image.outline); var _temp = image.outline.Split('|'); // 第一位颜色 Color effectColor; Outline _outline = ownObj.AddMissingComponent <Outline>(); if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + _temp[0]), out effectColor)) { _outline.effectColor = effectColor; } // 第二位 // 第三位 } rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height); rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y); }