/// <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() { mWidgetType = (WidgetType)EditorPrefs.GetInt("NGUI Widget category", 0); mFillDir = (UIScrollBar.FillDirection)EditorPrefs.GetInt("NGUI Fill Dir", 0); int color = EditorPrefs.GetInt("NGUI Color", -1); if (color != -1) { mColor = NGUIMath.IntToColor(color); } 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.DrawSpriteField("Background", "Sprite used for the background", NGUISettings.atlas, mScrollBG, OnScrollBG, GUILayout.Width(120f)); NGUIEditorTools.DrawSpriteField("Foreground", "Sprite used for the foreground (thumb)", NGUISettings.atlas, mScrollFG, OnScrollFG, GUILayout.Width(120f)); GUILayout.BeginHorizontal(); UIScrollBar.FillDirection dir = (UIScrollBar.FillDirection)EditorGUILayout.EnumPopup("Direction", mFillDir, GUILayout.Width(200f)); GUILayout.Space(20f); GUILayout.Label("Add colliders?", GUILayout.Width(90f)); bool draggable = EditorGUILayout.Toggle(mScrollCL); GUILayout.EndHorizontal(); if (mScrollCL != draggable || mFillDir != dir) { mScrollCL = draggable; mFillDir = dir; Save(); } } if (ShouldCreate(go, NGUISettings.atlas != null)) { int depth = NGUITools.CalculateNextDepth(go); go = NGUITools.AddChild(go); go.name = "Scroll Bar"; UISprite bg = NGUITools.AddWidget <UISprite>(go); bg.type = UISprite.Type.Sliced; bg.name = "Background"; bg.depth = depth; bg.atlas = NGUISettings.atlas; bg.spriteName = mScrollBG; Vector4 border = bg.border; bg.width = Mathf.RoundToInt(400f + border.x + border.z); bg.height = Mathf.RoundToInt(14f + border.y + border.w); bg.MakePixelPerfect(); UISprite fg = NGUITools.AddWidget <UISprite>(go); fg.type = UISprite.Type.Sliced; fg.name = "Foreground"; fg.atlas = NGUISettings.atlas; fg.spriteName = mScrollFG; UIScrollBar sb = go.AddComponent <UIScrollBar>(); sb.foregroundWidget = fg; sb.backgroundWidget = bg; sb.fillDirection = mFillDir; sb.barSize = 0.3f; sb.value = 0.3f; sb.ForceUpdate(); if (mScrollCL) { NGUITools.AddWidgetCollider(bg.gameObject); NGUITools.AddWidgetCollider(fg.gameObject); } Selection.activeGameObject = go; } }