Exemple #1
0
        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);
            }
        }
Exemple #2
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;
        }
        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 UINode DrawLayer(Layer layer, UINode parent)
        {
            UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_IMAGE, layer.name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image;

            UnityEngine.UI.Image panel = node.GetComponent <UnityEngine.UI.Image>();

            ctrl.DrawLayers(layer.layers, node);//子节点

            for (int i = 0; i < layer.images.Length; i++)
            {
                Image image = layer.images[i];

                if (image.name.ToLower().StartsWith("b_"))
                {
                    PSDImportUtility.SetPictureOrLoadColor(image, panel);
                    PSDImportUtility.SetRectTransform(image, panel.GetComponent <RectTransform>());
                    panel.name = layer.name;
                }
                else
                {
                    ctrl.DrawImage(image, node);
                }
            }
            return(node);
        }
Exemple #5
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);
            }
            //}
        }
Exemple #6
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);
        }
Exemple #7
0
        public UINode DrawLayer(Layer layer, UINode parent)
        {
            UINode        node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_EMPTY, layer.name, parent);
            RectTransform obj  = node.GetComponent <RectTransform>();

            PSDImportUtility.SetRectTransform(layer, obj, parent.GetComponent <RectTransform>());

            if (layer.images != null)
            {
                for (int imageIndex = 0; imageIndex < layer.images.Length; imageIndex++)
                {
                    Image image = layer.images[imageIndex];
                    ctrl.DrawImage(image, node);
                }
            }

            ctrl.DrawLayers(layer.layers, node);
            return(node);
        }
Exemple #8
0
        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 UINode DrawLayer(Layer layer, UINode parent)
        {
            UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_GROUP, layer.name, parent);

            UnityEngine.UI.LayoutGroup group = null;
            string type = layer.arguments[0].ToLower();
            float  span = 0;

            float.TryParse(layer.arguments[1], out span);
            switch (type)
            {
            case "v":
                group = node.AddComponent <UnityEngine.UI.VerticalLayoutGroup>();
                group.childAlignment = TextAnchor.UpperLeft;
                ((UnityEngine.UI.VerticalLayoutGroup)group).spacing = span;
                break;

            case "h":
                group = node.AddComponent <UnityEngine.UI.HorizontalLayoutGroup>();
                group.childAlignment = TextAnchor.UpperLeft;
                ((UnityEngine.UI.HorizontalLayoutGroup)group).spacing = span;
                break;
            }

            PSDImportUtility.SetRectTransform(layer, group.GetComponent <RectTransform>(), parent.GetComponent <RectTransform>());

            UINode[] nodes = pSDImportCtrl.DrawImages(layer.images, node);
            foreach (var item in nodes)
            {
                item.anchoType = UINode.AnchoType.Left | UINode.AnchoType.Up;
            }
            nodes = pSDImportCtrl.DrawLayers(layer.layers, node);
            foreach (var item in nodes)
            {
                item.anchoType = UINode.AnchoType.Left | UINode.AnchoType.Up;
            }
            return(node);
        }
        public 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 UINode DrawLayer(Layer layer, UINode parent)
        {
            UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_IMAGE, layer.name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image;

            UnityEngine.UI.Image panel = node.InitComponent <UnityEngine.UI.Image>();

            ctrl.DrawLayers(layer.layers, node);//子节点
            bool havebg = false;

            for (int i = 0; i < layer.images.Length; i++)
            {
                Image image = layer.images[i];

                if (image.name.ToLower().StartsWith("b_"))
                {
                    havebg = true;
                    PSDImportUtility.SetPictureOrLoadColor(image, panel);
                    PSDImportUtility.SetRectTransform(image, panel.GetComponent <RectTransform>());
                    panel.name = layer.name;
                }
                else
                {
                    ctrl.DrawImage(image, node);
                }
            }
            if (!havebg)
            {
                PSDImportUtility.SetRectTransform(layer, panel.GetComponent <RectTransform>(), parent.InitComponent <RectTransform>());
                Color color;
                if (ColorUtility.TryParseHtmlString("#FFFFFF01", out color))
                {
                    panel.GetComponent <UnityEngine.UI.Image>().color = color;
                }
                panel.name = layer.name;
            }
            return(node);
        }
Exemple #12
0
        public void DrawLayer(Layer layer, GameObject parent)
        {
            GameObject temp;
            string     type = layer.arguments[0].ToUpper();

            switch (type.ToUpper())
            {
            case "V":
                temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_GROUP_V, typeof(GameObject)) as GameObject;
                break;

            case "H":
                temp = AssetDatabase.LoadAssetAtPath(PSDImporterConst.ASSET_PATH_GROUP_H, typeof(GameObject)) as GameObject;
                break;

            default:
                return;
            }

            UnityEngine.UI.HorizontalOrVerticalLayoutGroup group = GameObject.Instantiate(temp).GetComponent <UnityEngine.UI.HorizontalOrVerticalLayoutGroup>(); //as UnityEngine.UI.HorizontalOrVerticalLayoutGroup;
            group.transform.SetParent(parent.transform, false);                                                                                                  //parent = parent.transform;

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

            rectTransform.sizeDelta        = new Vector2(layer.size.width, layer.size.height);
            rectTransform.anchoredPosition = new Vector2(layer.position.x, layer.position.y);

            float span;

            if (float.TryParse(layer.arguments[1], out span))
            {
                group.spacing = span;
            }

            pSDImportCtrl.DrawLayers(layer.layers, group.gameObject);
        }
        public UINode DrawLayer(Layer layer, UINode parent)
        {
            UINode node = PSDImportUtility.InstantiateItem(PSDImporterConst.PREFAB_PATH_GRID, layer.name, parent);

            node.anchoType = UINode.AnchoType.Up | UINode.AnchoType.Left;
            GridLayoutGroup gridLayoutGroup = node.GetComponent <GridLayoutGroup>();

            PSDImportUtility.SetRectTransform(layer, gridLayoutGroup.GetComponent <RectTransform>(), node.GetComponent <RectTransform>());

            gridLayoutGroup.padding  = new RectOffset(1, 1, 1, 1);
            gridLayoutGroup.cellSize = new Vector2(layer.size.width, layer.size.height);

            if (layer.arguments != null && layer.arguments.Length > 1)
            {
                string rc = layer.arguments[0];
                gridLayoutGroup.constraint = rc.ToLower() == "c" ? GridLayoutGroup.Constraint.FixedColumnCount : (rc.ToLower() == "r"? GridLayoutGroup.Constraint.FixedRowCount: GridLayoutGroup.Constraint.Flexible);
                int count = int.Parse(layer.arguments[1]);
                gridLayoutGroup.constraintCount = count;
            }

            ctrl.DrawImages(layer.images, node);
            ctrl.DrawLayers(layer.layers, node);
            return(node);
        }