public override void AfterGenerate(UGUINode node)
        {
            base.AfterGenerate(node);
            ContentSizeFitter content = node.InitComponent <ContentSizeFitter>();

            content.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
            content.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;
        }
        private void SetLayoutItem(UGUINode childNode, Rect rect)
        {
            var layout = childNode.transform.gameObject.AddComponent <LayoutElement>();

            layout.preferredWidth  = rect.width;
            layout.preferredHeight = rect.height;
            childNode.anchoType    = AnchoType.Left | AnchoType.Up;
        }
Esempio n. 3
0
 /// <summary>
 /// 空器
 /// </summary>
 /// <param name="childNode"></param>
 /// <param name="scrollRect"></param>
 private void DrawConent(UGUINode childNode, ScrollRect scrollRect)
 {
     childNode.inversionReprocess += (x) =>
     {
         var content = childNode.InitComponent <RectTransform>();
         scrollRect.content = content;
         scrollRect.content.anchoredPosition = Vector2.zero;
     };
 }
        public override void AfterGenerate(UGUINode node)
        {
            base.AfterGenerate(node);
            var           dropDown = node.InitComponent <Dropdown>();
            RectTransform rt       = dropDown.template;

            rt.pivot            = new Vector2(0.5f, 1);
            rt.anchoredPosition = Vector3.zero;
        }
Esempio n. 5
0
        public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent)
        {
            UGUINode  node      = CreateRootNode(layer.displayName, layer.rect, parent);
            Scrollbar scrollbar = node.InitComponent <Scrollbar>();

            SetScrollBarDirection(scrollbar, layer);
            DrawImages(layer.images, scrollbar, node);
            return(node);
        }
Esempio n. 6
0
        public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent)
        {
            UGUINode   node       = CreateRootNode(layer.displayName, layer.rect, parent);
            ScrollRect scrollRect = node.InitComponent <UnityEngine.UI.ScrollRect>();

            SetScrollViewDirection(layer, scrollRect, layer.directionAxis);
            var viewNode = DrawViewNode(layer, scrollRect, node);

            DrawImages(layer, node, scrollRect);
            DrawChildLayers(layer, viewNode, scrollRect);
            return(node);
        }
Esempio n. 7
0
        private void DrawImages(Data.GroupNode layer, UGUINode node, ScrollRect scrollRect)
        {
            for (int i = 0; i < layer.images.Count; i++)
            {
                Data.ImgNode image = layer.images[i];

                if (MatchAddress(image.Name, backgroundAddress))
                {
                    InitScrollViewBackground(node, image, scrollRect);
                }
                else
                {
                    ctrl.DrawImage(image, node);
                }
            }
        }
        public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent)
        {
            UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent);

            Dropdown      dropdown  = node.InitComponent <Dropdown>();
            ScrollRect    scrllRect = dropdown.template.GetComponent <ScrollRect>();
            RectTransform content   = scrllRect.content;
            Toggle        toggle    = content.GetComponentInChildren <Toggle>();

            UGUINode tempNode = CreateNormalNode(dropdown.template.gameObject, layer.rect, node);

            tempNode.anchoType = AnchoType.Down | AnchoType.XStretch;
            DrawImages(node, layer, dropdown, toggle, content);
            DrawSubLayers(layer, tempNode, scrllRect);
            return(node);
        }
        public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent)
        {
            UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent);

            node.anchoType = AnchoType.Up | AnchoType.Left;

            if (layer.children != null)
            {
                ctrl.DrawLayers(layer.children.ConvertAll(x => x as Data.GroupNode).ToArray(), node);
            }
            if (layer.images != null)
            {
                ctrl.DrawImages(layer.images.ToArray(), node);
            }

            InitGrid(node, layer);

            return(node);
        }
 /// <summary>
 /// 绘制所有image
 /// </summary>
 /// <param name="node"></param>
 /// <param name="layer"></param>
 /// <param name="dropdown"></param>
 /// <param name="toggle"></param>
 /// <param name="content"></param>
 private void DrawImages(UGUINode node, Data.GroupNode layer, Dropdown dropdown, Toggle toggle, RectTransform content)
 {
     for (int i = 0; i < layer.images.Count; i++)
     {
         Data.ImgNode image = layer.images[i];
         if (MatchIDAddress(image.Name, 1, backgroundsFormat))
         {
             PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.image);
             SetRectTransform(image.rect, dropdown.GetComponent <RectTransform>());
             dropdown.name = layer.displayName;
         }
         else if (MatchIDAddress(image.Name, 2, backgroundsFormat))
         {
             PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.template.GetComponent <Graphic>());
             SetRectTransform(image.rect, dropdown.template);
         }
         else if (MatchIDAddress(image.Name, 3, backgroundsFormat))
         {
             UnityEngine.UI.Image itemimage = (UnityEngine.UI.Image)toggle.targetGraphic;
             PSDImporterUtility.SetPictureOrLoadColor(image, itemimage);
             content.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, image.rect.height);
         }
         else if (MatchIDAddress(image.Name, 1, titlesFormat))
         {
             PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.captionText);
         }
         else if (MatchIDAddress(image.Name, 2, titlesFormat))
         {
             PSDImporterUtility.SetPictureOrLoadColor(image, dropdown.itemText);
         }
         else if (MatchAddress(image.Name, maskAddress))
         {
             UnityEngine.UI.Image mask = (UnityEngine.UI.Image)toggle.graphic;
             mask.enabled = true;
             PSDImporterUtility.SetPictureOrLoadColor(image, mask);
         }
         else
         {
             ctrl.DrawImage(image, node);
         }
     }
 }
        /// <summary>
        /// 初始化组
        /// </summary>
        /// <param name="layer"></param>
        /// <param name="node"></param>
        private void InitLayoutGroup(Data.GroupNode layer, UGUINode node)
        {
            HorizontalOrVerticalLayoutGroup group = null;

            switch (layer.directionAxis)
            {
            case DirectionAxis.Horizontal:
                group = node.InitComponent <UnityEngine.UI.HorizontalLayoutGroup>();
                break;

            case DirectionAxis.Vertical:
            default:
                group = node.InitComponent <UnityEngine.UI.VerticalLayoutGroup>();
                break;
            }
            if (group)
            {
                (group as UnityEngine.UI.VerticalLayoutGroup).spacing = layer.spacing;
                group.childAlignment = TextAnchor.UpperLeft;
            }
        }
 /// <summary>
 /// 滑动条绘制
 /// </summary>
 /// <param name="layer"></param>
 /// <param name="tempNode"></param>
 /// <param name="scrollRect"></param>
 private void DrawSubLayers(Data.GroupNode layer, UGUINode tempNode, ScrollRect scrollRect)
 {
     if (layer.children != null)
     {
         for (int i = 0; i < layer.children.Count; i++)
         {
             Data.GroupNode child = layer.children[i] as Data.GroupNode;
             if (MatchAddress(child.displayName, vbarAddress))
             {
                 UGUINode barNode = ctrl.DrawLayer(child, tempNode);
                 scrollRect.verticalScrollbar           = barNode.InitComponent <Scrollbar>();
                 scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHide;
                 barNode.anchoType = AnchoType.Right | AnchoType.YCenter;
             }
             else
             {
                 ctrl.DrawLayer(child, tempNode);
             }
         }
     }
 }
        private void InitGrid(UGUINode node, Data.GroupNode layer)
        {
            GridLayoutGroup gridLayoutGroup = node.InitComponent <GridLayoutGroup>();

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

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

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

            default:
                gridLayoutGroup.constraint = GridLayoutGroup.Constraint.Flexible;
                break;
            }
            gridLayoutGroup.constraintCount = layer.constraintCount;
        }
        public override UGUINode DrawLayer(Data.GroupNode layer, UGUINode parent)
        {
            UGUINode node = CreateRootNode(layer.displayName, layer.rect, parent);

            if (layer.children != null)
            {
                foreach (Data.GroupNode item in layer.children)
                {
                    var childNode = ctrl.DrawLayer(item, node);
                    SetLayoutItem(childNode, item.rect);
                }
            }
            if (layer.images != null)
            {
                foreach (Data.ImgNode item in layer.images)
                {
                    var childNode = ctrl.DrawImage(item, node);
                    SetLayoutItem(childNode, item.rect);
                }
            }

            InitLayoutGroup(layer, node);
            return(node);
        }
Esempio n. 15
0
 private void InitScrollViewBackground(UGUINode node, Data.ImgNode image, ScrollRect scrollRect)
 {
     UnityEngine.UI.Image graph = node.InitComponent <UnityEngine.UI.Image>();
     PSDImporterUtility.SetPictureOrLoadColor(image, graph);
     SetRectTransform(image.rect, scrollRect.GetComponent <RectTransform>());
 }