/// <summary>
    /// Load all serialized values from editor prefs.
    /// This is necessary because static values get wiped out as soon as scripts get recompiled.
    /// </summary>

    static void Load()
    {
        mType      = (WidgetType)EditorPrefs.GetInt("NGUI Widget Type", 0);
        mScrollDir = (NGUIScrollBar.Direction)EditorPrefs.GetInt("NGUI Scroll Dir", 0);

        int color = EditorPrefs.GetInt("NGUI Color", -1);

        if (color != -1)
        {
            mColor = NGUIMath.IntToColor(color);
        }

        mSprite   = LoadString("NGUI Sprite");
        mButton   = LoadString("NGUI Button");
        mImage0   = LoadString("NGUI Image 0");
        mImage1   = LoadString("NGUI Image 1");
        mImage2   = LoadString("NGUI Image 2");
        mImage3   = LoadString("NGUI Image 3");
        mCheckBG  = LoadString("NGUI CheckBG");
        mCheck    = LoadString("NGUI Check");
        mSliderBG = LoadString("NGUI SliderBG");
        mSliderFG = LoadString("NGUI SliderFG");
        mSliderTB = LoadString("NGUI SliderTB");
        mInputBG  = LoadString("NGUI InputBG");
        mListFG   = LoadString("NGUI ListFG");
        mListBG   = LoadString("NGUI ListBG");
        mListHL   = LoadString("NGUI ListHL");
        mScrollBG = LoadString("NGUI ScrollBG");
        mScrollFG = LoadString("NGUI ScrollFG");
        mScrollCL = EditorPrefs.GetBool("NGUI ScrollCL", true);
    }
    /// <summary>
    /// Scroll bar template.
    /// </summary>

    void CreateScrollBar(GameObject go)
    {
        if (NGUISettings.atlas != null)
        {
            NGUIEditorTools.SpriteField("Background", "Sprite used for the background", NGUISettings.atlas, mScrollBG, OnScrollBG);
            NGUIEditorTools.SpriteField("Foreground", "Sprite used for the foreground (thumb)", NGUISettings.atlas, mScrollFG, OnScrollFG);

            GUILayout.BeginHorizontal();
            NGUIScrollBar.Direction dir = (NGUIScrollBar.Direction)EditorGUILayout.EnumPopup("Direction", mScrollDir, GUILayout.Width(200f));
            GUILayout.Space(20f);
            GUILayout.Label("Add colliders?", GUILayout.Width(90f));
            bool draggable = EditorGUILayout.Toggle(mScrollCL);
            GUILayout.EndHorizontal();

            if (mScrollCL != draggable || mScrollDir != dir)
            {
                mScrollCL  = draggable;
                mScrollDir = dir;
                Save();
            }
        }

        if (ShouldCreate(go, NGUISettings.atlas != null))
        {
            int depth = NGUITools.CalculateNextDepth(go);
            go      = NGUITools.AddChild(go);
            go.name = "Scroll Bar";

            NGUISprite bg = NGUITools.AddWidget <NGUISprite>(go);
            bg.type                 = NGUISprite.Type.Sliced;
            bg.name                 = "Background";
            bg.depth                = depth;
            bg.atlas                = NGUISettings.atlas;
            bg.spriteName           = mScrollBG;
            bg.transform.localScale = new Vector3(400f + bg.border.x + bg.border.z, 14f + bg.border.y + bg.border.w, 1f);
            bg.MakePixelPerfect();

            NGUISprite fg = NGUITools.AddWidget <NGUISprite>(go);
            fg.type       = NGUISprite.Type.Sliced;
            fg.name       = "Foreground";
            fg.atlas      = NGUISettings.atlas;
            fg.spriteName = mScrollFG;

            NGUIScrollBar sb = go.AddComponent <NGUIScrollBar>();
            sb.background  = bg;
            sb.foreground  = fg;
            sb.direction   = mScrollDir;
            sb.barSize     = 0.3f;
            sb.scrollValue = 0.3f;
            sb.ForceUpdate();

            if (mScrollCL)
            {
                NGUITools.AddWidgetCollider(bg.gameObject);
                NGUITools.AddWidgetCollider(fg.gameObject);
            }
            Selection.activeGameObject = go;
        }
    }
Exemple #3
0
    public override void OnInspectorGUI()
    {
        EditorGUIUtility.LookLikeControls(80f);
        NGUIScrollBar sb = target as NGUIScrollBar;

        NGUIEditorTools.DrawSeparator();

        float val   = EditorGUILayout.Slider("Value", sb.scrollValue, 0f, 1f);
        float size  = EditorGUILayout.Slider("Size", sb.barSize, 0f, 1f);
        float alpha = EditorGUILayout.Slider("Alpha", sb.alpha, 0f, 1f);

        NGUIEditorTools.DrawSeparator();

        NGUISprite bg = (NGUISprite)EditorGUILayout.ObjectField("Background", sb.background, typeof(NGUISprite), true);
        NGUISprite fg = (NGUISprite)EditorGUILayout.ObjectField("Foreground", sb.foreground, typeof(NGUISprite), true);

        NGUIScrollBar.Direction dir = (NGUIScrollBar.Direction)EditorGUILayout.EnumPopup("Direction", sb.direction);
        bool inv = EditorGUILayout.Toggle("Inverted", sb.inverted);

        if (sb.scrollValue != val ||
            sb.barSize != size ||
            sb.background != bg ||
            sb.foreground != fg ||
            sb.direction != dir ||
            sb.inverted != inv ||
            sb.alpha != alpha)
        {
            NGUIEditorTools.RegisterUndo("Scroll Bar Change", sb);
            sb.scrollValue = val;
            sb.barSize     = size;
            sb.inverted    = inv;
            sb.background  = bg;
            sb.foreground  = fg;
            sb.direction   = dir;
            sb.alpha       = alpha;
            UnityEditor.EditorUtility.SetDirty(sb);
        }
    }
    /// <summary>
    /// Load all serialized values from editor prefs.
    /// This is necessary because static values get wiped out as soon as scripts get recompiled.
    /// </summary>
    static void Load()
    {
        mType = (WidgetType)EditorPrefs.GetInt("NGUI Widget Type", 0);
        mScrollDir = (NGUIScrollBar.Direction)EditorPrefs.GetInt("NGUI Scroll Dir", 0);

        int color = EditorPrefs.GetInt("NGUI Color", -1);
        if (color != -1) mColor = NGUIMath.IntToColor(color);

        mSprite		= LoadString("NGUI Sprite");
        mButton		= LoadString("NGUI Button");
        mImage0		= LoadString("NGUI Image 0");
        mImage1		= LoadString("NGUI Image 1");
        mImage2		= LoadString("NGUI Image 2");
        mImage3		= LoadString("NGUI Image 3");
        mCheckBG	= LoadString("NGUI CheckBG");
        mCheck		= LoadString("NGUI Check");
        mSliderBG	= LoadString("NGUI SliderBG");
        mSliderFG	= LoadString("NGUI SliderFG");
        mSliderTB	= LoadString("NGUI SliderTB");
        mInputBG	= LoadString("NGUI InputBG");
        mListFG		= LoadString("NGUI ListFG");
        mListBG		= LoadString("NGUI ListBG");
        mListHL		= LoadString("NGUI ListHL");
        mScrollBG	= LoadString("NGUI ScrollBG");
        mScrollFG	= LoadString("NGUI ScrollFG");
        mScrollCL	= EditorPrefs.GetBool("NGUI ScrollCL", true);
    }
    /// <summary>
    /// Scroll bar template.
    /// </summary>
    void CreateScrollBar(GameObject go)
    {
        if (NGUISettings.atlas != null)
        {
            NGUIEditorTools.SpriteField("Background", "Sprite used for the background", NGUISettings.atlas, mScrollBG, OnScrollBG);
            NGUIEditorTools.SpriteField("Foreground", "Sprite used for the foreground (thumb)", NGUISettings.atlas, mScrollFG, OnScrollFG);

            GUILayout.BeginHorizontal();
            NGUIScrollBar.Direction dir = (NGUIScrollBar.Direction)EditorGUILayout.EnumPopup("Direction", mScrollDir, GUILayout.Width(200f));
            GUILayout.Space(20f);
            GUILayout.Label("Add colliders?", GUILayout.Width(90f));
            bool draggable = EditorGUILayout.Toggle(mScrollCL);
            GUILayout.EndHorizontal();

            if (mScrollCL != draggable || mScrollDir != dir)
            {
                mScrollCL = draggable;
                mScrollDir = dir;
                Save();
            }
        }

        if (ShouldCreate(go, NGUISettings.atlas != null))
        {
            int depth = NGUITools.CalculateNextDepth(go);
            go = NGUITools.AddChild(go);
            go.name = "Scroll Bar";

            NGUISprite bg = NGUITools.AddWidget<NGUISprite>(go);
            bg.type = NGUISprite.Type.Sliced;
            bg.name = "Background";
            bg.depth = depth;
            bg.atlas = NGUISettings.atlas;
            bg.spriteName = mScrollBG;
            bg.transform.localScale = new Vector3(400f + bg.border.x + bg.border.z, 14f + bg.border.y + bg.border.w, 1f);
            bg.MakePixelPerfect();

            NGUISprite fg = NGUITools.AddWidget<NGUISprite>(go);
            fg.type = NGUISprite.Type.Sliced;
            fg.name = "Foreground";
            fg.atlas = NGUISettings.atlas;
            fg.spriteName = mScrollFG;

            NGUIScrollBar sb = go.AddComponent<NGUIScrollBar>();
            sb.background = bg;
            sb.foreground = fg;
            sb.direction = mScrollDir;
            sb.barSize = 0.3f;
            sb.scrollValue = 0.3f;
            sb.ForceUpdate();

            if (mScrollCL)
            {
                NGUITools.AddWidgetCollider(bg.gameObject);
                NGUITools.AddWidgetCollider(fg.gameObject);
            }
            Selection.activeGameObject = go;
        }
    }