Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
            }
            //}
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        public void DrawImage(PSImage image, GameObject parent, GameObject ownObj = null)
        {
            switch (image.imageType)
            {
            case ImageType.Image:
                spriteImport.DrawImage(image, parent, parent);
                break;

            case ImageType.Texture:
                textureImport.DrawImage(image, parent, parent);
                break;

            case ImageType.Label:
                textImport.DrawImage(image, parent, parent);
                break;

            case ImageType.SliceImage:
                slicedSpriteImport.DrawImage(image, parent);
                break;

            case ImageType.LeftHalfImage:
                halfSpriteImport.DrawImage(image, parent);
                break;

            case ImageType.UpHalfImage:
                halfSpriteImport.DrawImage(image, parent);
                break;

            default:
                break;
            }
        }
        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)
        {
            //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);
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        public void DrawLayer(Layer layer, GameObject parent)
        {
            UnityEngine.UI.Scrollbar temp      = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_SCROLLBAR, typeof(UnityEngine.UI.Scrollbar)) as UnityEngine.UI.Scrollbar;
            UnityEngine.UI.Scrollbar scrollBar = GameObject.Instantiate(temp) as UnityEngine.UI.Scrollbar;
            scrollBar.transform.SetParent(parent.transform, false); //parent = parent.transform;

            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;
            }

            float pecent;

            if (float.TryParse(layer.arguments[1], out pecent))
            {
                scrollBar.size = pecent;
            }


            //for (int i = 0; i < layer.images.Length; i++)
            //{
            PSImage image     = layer.image;
            string  assetPath = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX; Debug.Log("==  CommonImagePath  ====" + assetPath);
            Sprite  sprite    = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Sprite)) as Sprite;

            if (image.name.ToLower().Contains("background"))
            {
                scrollBar.GetComponent <UnityEngine.UI.Image>().sprite = sprite;
                RectTransform rectTransform = scrollBar.GetComponent <RectTransform>();

                rectTransform.sizeDelta        = new Vector2(image.size.width, image.size.height);
                rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y);
            }
            else if (image.name.ToLower().Contains("handle"))
            {
                scrollBar.handleRect.GetComponent <UnityEngine.UI.Image>().sprite = sprite;
            }
            //}
        }
Esempio n. 9
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();
        }
Esempio n. 10
0
        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);
                    }
                }
            }
        }
Esempio n. 11
0
        //--------------------------------------------------------------------------
        // private methods,按texture或image的要求导入图片到unity可加载的状态
        //-------------------------------------------------------------------------

        private void ImportLayer(Layer layer, string baseDirectory)
        {
            if (layer.image != null)
            {
                //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
                //{
                // we need to fixup all images that were exported from PS
                //PSImage image = layer.images[imageIndex];
                PSImage image = layer.image;

                if (image.imageType != ImageType.Label)
                {
                    string texturePathName = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX;

                    Debug.Log(texturePathName);
                    // modify the importer settings
                    TextureImporter textureImporter = AssetImporter.GetAtPath(texturePathName) as TextureImporter;

                    if (textureImporter != null && image.imageType != ImageType.Texture)               //Texture类型不设置属性
                    {
                        textureImporter.textureType      = TextureImporterType.Sprite;
                        textureImporter.spriteImportMode = SpriteImportMode.Single;
                        textureImporter.mipmapEnabled    = false;           //默认关闭mipmap
                        if (image.imageSource == ImageSource.Global)
                        {
                            textureImporter.spritePackingTag = PSDImporterConst.Globle_FOLDER_NAME;
                        }
                        else
                        {
                            textureImporter.spritePackingTag = PSDImportUtility.baseFilename;
                        }

                        textureImporter.maxTextureSize = 2048;

                        if (image.imageType == ImageType.SliceImage)      //slice才需要设置border,可能需要根据实际修改border值
                        {
                            setSpriteBorder(textureImporter, image.arguments);
                            //textureImporter.spriteBorder = new Vector4(3, 3, 3, 3);   // Set Default Slice type  UnityEngine.UI.Image's border to Vector4 (3, 3, 3, 3)
                        }

                        AssetDatabase.WriteImportSettingsIfDirty(texturePathName);
                        AssetDatabase.ImportAsset(texturePathName);
                    }
                }
                //}
            }

            if (layer.layers != null)
            {
                //LoadLayers();
                for (int layerIndex = 0; layerIndex < layer.layers.Length; layerIndex++)
                {
                    ImportLayer(layer.layers[layerIndex], PSDImportUtility.baseDirectory);
                }
            }
        }
Esempio n. 12
0
        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;
            }
        }
Esempio n. 13
0
        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();
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        //------------------------------------------------------------------
        //when it's a common psd, then move the asset to special folder
        //------------------------------------------------------------------
        private void MoveAsset(Layer layer, string baseDirectory)
        {
            if (layer.image != null)
            {
                string newPath = PSDImporterConst.Globle_BASE_FOLDER;
                if (layer.name == PSDImporterConst.IMAGE)
                {
                    newPath += PSDImporterConst.IMAGE + "/";
                }
                else if (layer.name == PSDImporterConst.NINE_SLICE)
                {
                    newPath += PSDImporterConst.NINE_SLICE + "/";
                }

                if (!System.IO.Directory.Exists(newPath))
                {
                    System.IO.Directory.CreateDirectory(newPath);
                    Debug.Log("creating new folder : " + newPath);
                }

                AssetDatabase.Refresh();

                //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
                //{
                // we need to fixup all images that were exported from PS
                PSImage image = layer.image;
                if (image.imageSource == ImageSource.Global)
                {
                    string texturePathName = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX;
                    string targetPathName  = newPath + image.name + PSDImporterConst.PNG_SUFFIX;

                    if (File.Exists(texturePathName))
                    {
                        AssetDatabase.MoveAsset(texturePathName, targetPathName);
                        Debug.Log(texturePathName);
                        Debug.Log(targetPathName);
                    }
                }
                //}
            }

            if (layer.layers != null)
            {
                for (int layerIndex = 0; layerIndex < layer.layers.Length; layerIndex++)
                {
                    MoveAsset(layer.layers[layerIndex], PSDImportUtility.baseDirectory);
                }
            }
        }
Esempio n. 16
0
        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);
                }
                //}
            }
        }
Esempio n. 17
0
        public static void SetGlobalImage(Image image, PSImage psImage)
        {
            string commonImagePath = PSDImporterConst.Globle_BASE_FOLDER + psImage.name.Replace(".", "/") + PSDImporterConst.PNG_SUFFIX;

            Debug.Log("==  CommonImagePath  ====" + commonImagePath);
            Sprite sprite = AssetDatabase.LoadAssetAtPath(commonImagePath, typeof(Sprite)) as Sprite;

            image.sprite = sprite;

            if (psImage.imageType == ImageType.SliceImage)
            {
                image.type = UnityEngine.UI.Image.Type.Sliced;
            }

            RectTransform rectTransform = image.GetComponent <RectTransform>();

            rectTransform.sizeDelta        = new Vector2(psImage.size.width, psImage.size.height);
            rectTransform.anchoredPosition = new Vector2(psImage.position.x, psImage.position.y);
        }
Esempio n. 18
0
        public static Object LoadAssetAtPath <T>(this PSImage image)
        {
            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;
            }

            Object obj = AssetDatabase.LoadAssetAtPath(assetPath, typeof(T));

            if (obj == null)
            {
                Debug.LogWarning("loading asset is null, at path: " + assetPath);
            }

            return(obj);
        }
Esempio n. 19
0
        public static void SetOutline(PSImage image, Text text)
        {
            var keyWord   = "outline";
            var lowerName = image.name.ToLower();

            if (lowerName.Contains(keyWord))
            {
                Outline outline = text.gameObject.GetComponent <Outline>();
                if (outline == null)
                {
                    outline = text.gameObject.AddComponent <Outline>();
                }
                outline.effectColor = new Color(0f / 255, 0f / 255, 0f / 255, 255f / 255);
                var starIndex = lowerName.IndexOf(keyWord);
                var dis       = lowerName.Substring(starIndex + keyWord.Length, 1);

                int distance;
                if (int.TryParse(dis, out distance))
                {
                    outline.effectDistance = new Vector2(distance, -distance);
                }
            }
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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);
                }
            }
        }
Esempio n. 22
0
        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);
                }
            }
        }
Esempio n. 23
0
        public void DrawLayer(Layer layer, GameObject parent)
        {
            UnityEngine.UI.InputField temp       = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_INPUTFIELD, typeof(UnityEngine.UI.InputField)) as UnityEngine.UI.InputField;
            UnityEngine.UI.InputField inputfield = GameObject.Instantiate(temp) as UnityEngine.UI.InputField;
            inputfield.transform.SetParent(parent.transform, false);//.parent = parent.transform;
            inputfield.name = layer.name;

            // 背景尺寸,用来限制文本框尺寸
            float _bgSize = 0;

            for (int i = 0; i < layer.layers.Length; ++i)
            {
                var _temp = layer.layers[i];

                if (_temp.image != null)
                {
                    //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
                    //{
                    PSImage image = _temp.image;

                    if (image.imageType == ImageType.Label)
                    {
                        if (image.name.ToLower().Contains("text"))
                        {
                            this.pSDImportCtrl.DrawLayer(_temp, inputfield.gameObject);

                            var _text = PSDImportUtility.canvas.transform.Find(_temp.name).GetComponent <Text>();

                            RectTransform _rectTransform = _text.GetComponent <RectTransform>();

                            // 需要重设锚点,目前默认left
                            var _offsetMin = _rectTransform.offsetMin;
                            var _offsetMax = _rectTransform.offsetMax;

                            _rectTransform.pivot = new Vector2(0, 1);

                            _rectTransform.offsetMin = _offsetMin;
                            _rectTransform.offsetMax = _offsetMax;

                            if (Math.Abs(_bgSize) < float.Epsilon)
                            {
                                for (int j = 0; j < layer.layers.Length; ++j)
                                {
                                    var _layerLayer = layer.layers[i];

                                    if (_layerLayer.image != null)
                                    {
                                        if (_layerLayer.image.imageType != ImageType.Label &&
                                            _layerLayer.image.name.Contains("background"))
                                        {
                                            _bgSize = _layerLayer.image.size.width;

                                            break;
                                        }
                                    }
                                }
                            }

                            if (_rectTransform.sizeDelta.x < _bgSize)
                            {
                                _rectTransform.sizeDelta = new Vector2(_bgSize, _rectTransform.sizeDelta.y);
                            }

                            _text.supportRichText = false;
                            _text.text            = "";

                            if (inputfield.textComponent != null)
                            {
                                Object.DestroyImmediate(inputfield.textComponent.gameObject);
                            }

                            inputfield.textComponent = _text;

                            //UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.textComponent;//inputfield.transform.Find("Text").GetComponent<UnityEngine.UI.Text>();
                            //Color color;
                            //if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                            //{
                            //    text.color = color;
                            //}

                            //int size;
                            //if (int.TryParse(image.arguments[2], out size))
                            //{
                            //    text.fontSize = size;
                            //}
                        }
                        else if (image.name.ToLower().Contains("holder"))
                        {
                            this.pSDImportCtrl.DrawLayer(_temp, inputfield.gameObject);

                            if (inputfield.placeholder != null)
                            {
                                Object.DestroyImmediate(inputfield.placeholder.gameObject);
                            }

                            inputfield.placeholder = PSDImportUtility.canvas.transform.Find(_temp.name).GetComponent <Text>();
                            ((Text)inputfield.placeholder).supportRichText = false;

                            //UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.placeholder;//.transform.Find("Placeholder").GetComponent<UnityEngine.UI.Text>();
                            //Color color;
                            //if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                            //{
                            //    text.color = color;
                            //}

                            //int size;
                            //if (int.TryParse(image.arguments[2], out size))
                            //{
                            //    text.fontSize = size;
                            //}
                        }
                    }
                    else
                    {
                        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;
                                inputfield.image.sprite = sprite;

                                RectTransform rectTransform = inputfield.GetComponent <RectTransform>();
                                rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height);
                                _bgSize = image.size.width;

                                rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y);
                            }
                        }
                    }
                    //}
                }
            }

            //if (layer.image != null)
            //{
            //    //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
            //    //{
            //        PSImage image = layer.image;

            //        if (image.imageType == ImageType.Label)
            //        {
            //            if (image.name.ToLower().Contains("text"))
            //            {
            //                UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.textComponent;//inputfield.transform.Find("Text").GetComponent<UnityEngine.UI.Text>();
            //                Color color;
            //                if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
            //                {
            //                    text.color = color;
            //                }

            //                int size;
            //                if (int.TryParse(image.arguments[2], out size))
            //                {
            //                    text.fontSize = size;
            //                }
            //            }
            //            else if (image.name.ToLower().Contains("holder"))
            //            {
            //                UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.placeholder;//.transform.Find("Placeholder").GetComponent<UnityEngine.UI.Text>();
            //                Color color;
            //                if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
            //                {
            //                    text.color = color;
            //                }

            //                int size;
            //                if (int.TryParse(image.arguments[2], out size))
            //                {
            //                    text.fontSize = size;
            //                }
            //            }
            //        }
            //        else
            //        {
            //            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;
            //                    inputfield.image.sprite = sprite;

            //                    RectTransform rectTransform = inputfield.GetComponent<RectTransform>();
            //                    rectTransform.sizeDelta = new Vector2(image.size.width, image.size.height);
            //                    rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y);
            //                }
            //            }
            //        }
            //    //}
            //}
        }
Esempio n. 24
0
        //------------------------------------------------------------------
        //when it's a common psd, then move the asset to special folder
        //------------------------------------------------------------------
        private void MoveAsset(Layer layer, string baseDirectory)
        {
            if (layer.image != null)
            {
                string newPath = PSDImporterConst.Globle_BASE_FOLDER;
                if (layer.name == PSDImporterConst.IMAGE)
                {
                    newPath += PSDImporterConst.IMAGE + "/";
                }
                else if (layer.name == PSDImporterConst.NINE_SLICE)
                {
                    newPath += PSDImporterConst.NINE_SLICE + "/";
                }

                if (!System.IO.Directory.Exists(newPath))
                {
                    System.IO.Directory.CreateDirectory(newPath);
                    Debug.Log("creating new folder : " + newPath);
                }

                AssetDatabase.Refresh();


                PSImage image = layer.image;
                if (image.imageSource == ImageSource.Global)
                {
                    string texturePathName = PSDImportUtility.baseDirectory + image.name + PSDImporterConst.PNG_SUFFIX;
                    string targetPathName  = newPath + image.name + PSDImporterConst.PNG_SUFFIX;
                    if (File.Exists(targetPathName))
                    {
                        if (File.Exists(texturePathName))
                        {
                            File.Copy(texturePathName, targetPathName, true);
                            //spriteB按照spriteA的导入设置重新导入一遍(为了meta)
                            string                  pathSpriteA             = texturePathName;
                            string                  pathSpriteB             = targetPathName;
                            TextureImporter         textureImporterSpriteA  = TextureImporter.GetAtPath(pathSpriteA) as TextureImporter;
                            TextureImporter         textureImporterSpriteB  = TextureImporter.GetAtPath(pathSpriteB) as TextureImporter;
                            TextureImporterSettings textureImporterSettings = new TextureImporterSettings();
                            textureImporterSpriteA.ReadTextureSettings(textureImporterSettings);
                            textureImporterSpriteB.SetTextureSettings(textureImporterSettings);
                            AssetDatabase.WriteImportSettingsIfDirty(pathSpriteB);
                            AssetDatabase.ImportAsset(pathSpriteB);
                            File.Delete(texturePathName);
                        }
                    }
                    else
                    {
                        AssetDatabase.MoveAsset(texturePathName, targetPathName);
                    }
                }
            }

            if (layer.layers != null)
            {
                for (int layerIndex = 0; layerIndex < layer.layers.Length; layerIndex++)
                {
                    MoveAsset(layer.layers[layerIndex], PSDImportUtility.baseDirectory);
                }
            }
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        public void DrawLayer(Layer layer, GameObject parent)
        {
            UnityEngine.UI.InputField temp       = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_INPUTFIELD, typeof(UnityEngine.UI.InputField)) as UnityEngine.UI.InputField;
            UnityEngine.UI.InputField inputfield = GameObject.Instantiate(temp) as UnityEngine.UI.InputField;
            inputfield.transform.SetParent(parent.transform, false);//.parent = parent.transform;
            inputfield.name = layer.name;
            inputfield.placeholder?.gameObject.SetActive(false);
            //if (layer.image != null)
            if (layer.layers != null)
            {
                for (int imageIndex = 0; imageIndex < layer.layers.Length; imageIndex++)
                {
                    PSImage image = layer.layers[imageIndex].image;
                    //PSImage image = layer.image;

                    if (image.imageType == ImageType.Label)
                    {
                        if (image.name.ToLower().Contains("text"))
                        {
                            UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.textComponent;//inputfield.transform.Find("Text").GetComponent<UnityEngine.UI.Text>();
                            Color color;
                            if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                            {
                                text.color = color;
                            }
                            int   size;
                            float sizeFloat;
                            if (float.TryParse(image.arguments[2], out sizeFloat))
                            {
                                size          = Mathf.RoundToInt(sizeFloat);
                                text.fontSize = size;
                            }
                            text.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
                            {
                                text.font = font;
                            }
                            //ps的size在unity里面太小,文本会显示不出来,暂时选择溢出
                            text.verticalOverflow   = VerticalWrapMode.Overflow;
                            text.horizontalOverflow = HorizontalWrapMode.Overflow;
                            //设置对齐
                            if (image.arguments.Length >= 5)
                            {
                                text.alignment = ParseAlignmentPS2UGUI(image.arguments[4]);
                            }
                            else
                            {
                                text.alignment = TextAnchor.MiddleLeft;
                            }
                            TextImport.SetOutline(image, text);
                        }
                        else if (image.name.ToLower().Contains("holder"))
                        {
                            /*
                             * UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.placeholder;//.transform.Find("Placeholder").GetComponent<UnityEngine.UI.Text>();
                             * Color color;
                             * if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                             * {
                             *  text.color = color;
                             * }
                             *
                             * int size;
                             * float sizeFloat;
                             * if (float.TryParse(image.arguments[2], out sizeFloat))
                             * {
                             *  size = Mathf.RoundToInt(sizeFloat);
                             *  text.fontSize = size;
                             * }
                             *
                             * text.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
                             * {
                             *  text.font = font;
                             * }
                             * //ps的size在unity里面太小,文本会显示不出来,暂时选择溢出
                             * text.verticalOverflow = VerticalWrapMode.Overflow;
                             * text.horizontalOverflow = HorizontalWrapMode.Overflow;
                             * //设置对齐
                             * if (image.arguments.Length >= 5)
                             *  text.alignment = ParseAlignmentPS2UGUI(image.arguments[4]);
                             * else
                             * {
                             *  text.alignment = TextAnchor.MiddleLeft;
                             * }*/
                        }
                    }
                    else
                    {
                        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;
                                inputfield.image.sprite = sprite;

                                RectTransform rectTransform = inputfield.GetComponent <RectTransform>();
                                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)
                            {
                                SpriteImport.SetGlobalImage(inputfield.image, image);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 27
0
        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);
        }
Esempio n. 28
0
        public void DrawLayer(Layer layer, GameObject parent)
        {
            UnityEngine.UI.InputField temp       = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_INPUTFIELD, typeof(UnityEngine.UI.InputField)) as UnityEngine.UI.InputField;
            UnityEngine.UI.InputField inputfield = GameObject.Instantiate(temp) as UnityEngine.UI.InputField;
            inputfield.transform.SetParent(parent.transform, false);//.parent = parent.transform;
            inputfield.name = layer.name;

            if (layer.image != null)
            {
                //for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
                //{
                PSImage image = layer.image;

                if (image.imageType == ImageType.Label)
                {
                    if (image.name.ToLower().Contains("text"))
                    {
                        UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.textComponent;    //inputfield.transform.Find("Text").GetComponent<UnityEngine.UI.Text>();
                        Color color;
                        if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                        {
                            text.color = color;
                        }

                        int size;
                        if (int.TryParse(image.arguments[2], out size))
                        {
                            text.fontSize = size;
                        }
                    }
                    else if (image.name.ToLower().Contains("holder"))
                    {
                        UnityEngine.UI.Text text = (UnityEngine.UI.Text)inputfield.placeholder;    //.transform.Find("Placeholder").GetComponent<UnityEngine.UI.Text>();
                        Color color;
                        if (UnityEngine.ColorUtility.TryParseHtmlString(("#" + image.arguments[0]), out color))
                        {
                            text.color = color;
                        }

                        int size;
                        if (int.TryParse(image.arguments[2], out size))
                        {
                            text.fontSize = size;
                        }
                    }
                }
                else
                {
                    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;
                            inputfield.image.sprite = sprite;

                            RectTransform rectTransform = inputfield.GetComponent <RectTransform>();
                            rectTransform.sizeDelta        = new Vector2(image.size.width, image.size.height);
                            rectTransform.anchoredPosition = new Vector2(image.position.x, image.position.y);
                        }
                    }
                }
                //}
            }
        }