Example #1
0
        public UGUINode DrawLayer(GroupNode layer, UGUINode parent)
        {
            UGUINode node = PSDImportUtility.InstantiateItem(GroupType.GRID, layer.Name, parent);

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

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

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

            switch (layer.direction)
            {
            case Direction.Horizontal:
                gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
                break;

            case Direction.Vertical:
                gridLayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount;
                break;

            default:
                gridLayoutGroup.constraint = GridLayoutGroup.Constraint.Flexible;
                break;
            }
            gridLayoutGroup.constraintCount = layer.constraintCount;

            ctrl.DrawImages(layer.images.ToArray(), node);
            ctrl.DrawLayers(layer.groups.ToArray() as GroupNode[], node);
            return(node);
        }
Example #2
0
        public UGUINode DrawLayer(GroupNode layer, UGUINode parent)
        {
            UGUINode node = PSDImportUtility.InstantiateItem(GroupType.IMAGE, layer.Name, parent);//GameObject.Instantiate(temp) as UnityEngine.UI.Image;

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

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

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

                if (image.Name.ToLower().StartsWith("b_"))
                {
                    havebg = true;
                    PSDImportUtility.SetPictureOrLoadColor(image, panel);
                    PSDImportUtility.SetRectTransform(image, panel.GetComponent <RectTransform>());
                    panel.name = layer.Name;
                }
                else
                {
                    ctrl.DrawImage(image, node);
                }
            }
            if (!havebg)
            {
                PSDImportUtility.SetRectTransform(layer, panel.GetComponent <RectTransform>());
                Color color;
                if (ColorUtility.TryParseHtmlString("#FFFFFF01", out color))
                {
                    panel.GetComponent <UnityEngine.UI.Image>().color = color;
                }
                panel.name = layer.Name;
            }
            return(node);
        }
Example #3
0
        public UGUINode DrawLayer(GroupNode layer, UGUINode parent)
        {
            UGUINode node = PSDImportUtility.InstantiateItem(GroupType.GROUP, layer.Name, parent);

            UnityEngine.UI.LayoutGroup group = null;
            switch (layer.direction)
            {
            case Direction.Horizontal:
                group = node.InitComponent <UnityEngine.UI.HorizontalLayoutGroup>();
                group.childAlignment = TextAnchor.UpperLeft;
                break;

            case Direction.Vertical:
                group = node.InitComponent <UnityEngine.UI.VerticalLayoutGroup>();
                group.childAlignment = TextAnchor.UpperLeft;
                break;

            default:
                break;
            }
            ((UnityEngine.UI.VerticalLayoutGroup)group).spacing = layer.spacing;

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

            UGUINode[] nodes = pSDImportCtrl.DrawImages(layer.images.ToArray(), node);
            foreach (var item in nodes)
            {
                item.anchoType = AnchoType.Left | AnchoType.Up;
            }
            nodes = pSDImportCtrl.DrawLayers(layer.groups.ToArray(), node);
            foreach (var item in nodes)
            {
                item.anchoType = AnchoType.Left | AnchoType.Up;
            }
            return(node);
        }