Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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);
        }