Example #1
0
    private void CreateRepeated(GameObject go) {
        if (NGUISettings.atlas != null) {
            NGUIEditorTools.DrawSpriteField("Icon", "Icon sprite to repeat", NGUISettings.atlas, sprite0, OnSprite0);

            bool withSlots = BoolField("With Slots", "", bool0, OnBool0);
            
            GUI.enabled = withSlots;
            NGUIEditorTools.DrawSpriteField("Slot", "Slot for icons", NGUISettings.atlas, sprite1, OnSprite1);
            GUI.enabled = true;
            
            GUILayout.BeginHorizontal();
            int repeat = EditorGUILayout.IntField("Repeat Count", int0, GUILayout.Width(200f));
            GUILayout.Space(20f);
            GUILayout.Label("How many times icon should repeated");
            GUILayout.EndHorizontal();
            
            if (repeat != int0) {
                int0 = repeat;
                Save();
                Repaint();
            }
        
            if (ShouldCreate(go, true)) {
                Vector3 delta = new Vector3(64, 0, 0);
            
                int depth = NGUITools.CalculateNextDepth(go);
                go = NGUITools.AddChild(go);
                go.name = "RepeatBar";
                
                var bar = go.AddComponent<UIRepeatProgressBar>();
                bar.icons = new UIRepeatProgressBar.Icon[repeat];
                
                for (int i = 0; i < repeat; ++i) {
                    var ic = new UIRepeatProgressBar.Icon();
                    bar.icons[i] = ic;
                    
                    var iconAnchor = NGUITools.AddChild(go);
                    iconAnchor.name = "iconAnchor" + (i + 1);
                    ic.anchor = iconAnchor.transform;
                    
                    ic.anchor.localPosition = delta * i;
                
                    if (withSlots && sprite1 != null) {
                        UISprite slot = NGUITools.AddWidget<UISprite>(iconAnchor);
                        slot.type = UISprite.Type.Simple;
                        slot.name = "slot";
                        slot.depth = depth + i * 2;
                        slot.atlas = NGUISettings.atlas;
                        slot.spriteName = sprite1;
                        slot.MakePixelPerfect();
                        
                        ic.slot = slot.transform;
                        ic.slotScaleOrig = slot.transform.localScale;
                    }
                    
                    UISprite icon = NGUITools.AddWidget<UISprite>(iconAnchor);
                    icon.type = UISprite.Type.Filled;
                    icon.fillDirection = UISprite.FillDirection.Horizontal;
                    icon.name = "icon";
                    icon.depth = depth + i * 2 + 1;
                    icon.atlas = NGUISettings.atlas;
                    icon.spriteName = sprite0;
                    icon.MakePixelPerfect();
                    
                    ic.icon = icon.transform;
                    ic.iconScaleOrig = icon.transform.localScale;
                }
                
                
             }
         }
    }
Example #2
0
    private void CreateRepeated(GameObject go)
    {
        if (NGUISettings.atlas != null)
        {
            NGUIEditorTools.DrawSpriteField("Icon", "Icon sprite to repeat", NGUISettings.atlas, sprite0, OnSprite0);

            bool withSlots = BoolField("With Slots", "", bool0, OnBool0);

            GUI.enabled = withSlots;
            NGUIEditorTools.DrawSpriteField("Slot", "Slot for icons", NGUISettings.atlas, sprite1, OnSprite1);
            GUI.enabled = true;

            GUILayout.BeginHorizontal();
            int repeat = EditorGUILayout.IntField("Repeat Count", int0, GUILayout.Width(200f));
            GUILayout.Space(20f);
            GUILayout.Label("How many times icon should repeated");
            GUILayout.EndHorizontal();

            if (repeat != int0)
            {
                int0 = repeat;
                Save();
                Repaint();
            }

            if (ShouldCreate(go, true))
            {
                Vector3 delta = new Vector3(64, 0, 0);

                int depth = NGUITools.CalculateNextDepth(go);
                go      = NGUITools.AddChild(go);
                go.name = "RepeatBar";

                var bar = go.AddComponent <UIRepeatProgressBar>();
                bar.icons = new UIRepeatProgressBar.Icon[repeat];

                for (int i = 0; i < repeat; ++i)
                {
                    var ic = new UIRepeatProgressBar.Icon();
                    bar.icons[i] = ic;

                    var iconAnchor = NGUITools.AddChild(go);
                    iconAnchor.name = "iconAnchor" + (i + 1);
                    ic.anchor       = iconAnchor.transform;

                    ic.anchor.localPosition = delta * i;

                    if (withSlots && sprite1 != null)
                    {
                        UISprite slot = NGUITools.AddWidget <UISprite>(iconAnchor);
                        slot.type       = UISprite.Type.Simple;
                        slot.name       = "slot";
                        slot.depth      = depth + i * 2;
                        slot.atlas      = NGUISettings.atlas;
                        slot.spriteName = sprite1;
                        slot.MakePixelPerfect();

                        ic.slot          = slot.transform;
                        ic.slotScaleOrig = slot.transform.localScale;
                    }

                    UISprite icon = NGUITools.AddWidget <UISprite>(iconAnchor);
                    icon.type          = UISprite.Type.Filled;
                    icon.fillDirection = UISprite.FillDirection.Horizontal;
                    icon.name          = "icon";
                    icon.depth         = depth + i * 2 + 1;
                    icon.atlas         = NGUISettings.atlas;
                    icon.spriteName    = sprite0;
                    icon.MakePixelPerfect();

                    ic.icon          = icon.transform;
                    ic.iconScaleOrig = icon.transform.localScale;
                }
            }
        }
    }