123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- namespace FairyGUI
- {
- /// <summary>
- /// Global configs. These options should be set before any UI construction.
- /// </summary>
- [AddComponentMenu("FairyGUI/UI Config")]
- public class UIConfig : MonoBehaviour
- {
- /// <summary>
- /// Dynamic Font Support.
- /// 4.x: Put the xxx.ttf into /Resources or /Resources/Fonts, and set defaultFont="xxx".
- /// 5.x: set defaultFont to system font name(or names joint with comma). e.g. defaultFont="Microsoft YaHei, SimHei"
- /// </summary>
- public static string defaultFont = "";
- [Obsolete("No use anymore")]
- public static bool renderingTextBrighterOnDesktop = true;
- /// <summary>
- /// Resource using in Window.ShowModalWait for locking the window.
- /// </summary>
- public static string windowModalWaiting;
- /// <summary>
- /// Resource using in GRoot.ShowModalWait for locking the screen.
- /// </summary>
- public static string globalModalWaiting;
- /// <summary>
- /// When a modal window is in front, the background becomes dark.
- /// </summary>
- public static Color modalLayerColor = new Color(0f, 0f, 0f, 0.4f);
- /// <summary>
- /// Default button click sound.
- /// </summary>
- public static NAudioClip buttonSound;
- /// <summary>
- /// Default button click sound volume.
- /// </summary>
- public static float buttonSoundVolumeScale = 1f;
- /// <summary>
- /// Resource url of horizontal scrollbar
- /// </summary>
- public static string horizontalScrollBar;
- /// <summary>
- /// Resource url of vertical scrollbar
- /// </summary>
- public static string verticalScrollBar;
- /// <summary>
- /// Scrolling step in pixels
- /// 当调用ScrollPane.scrollUp/Down/Left/Right时,或者点击滚动条的上下箭头时,滑动的距离。
- /// 鼠标滚轮触发一次滚动的距离设定为defaultScrollStep*2
- /// </summary>
- public static float defaultScrollStep = 25;
- /// <summary>
- /// Deceleration ratio of scrollpane when its in touch dragging.
- /// 当手指拖动并释放滚动区域后,内容会滑动一定距离后停下,这个速率就是减速的速率。
- /// 越接近1,减速越慢,意味着滑动的时间和距离更长。
- /// 这个是全局设置,也可以通过ScrollPane.decelerationRate进行个性设置。
- /// </summary>
- public static float defaultScrollDecelerationRate = 0.967f;
- /// <summary>
- /// Scrollbar display mode. Recommended 'Auto' for mobile and 'Visible' for web.
- /// </summary>
- public static ScrollBarDisplayType defaultScrollBarDisplay = ScrollBarDisplayType.Default;
- /// <summary>
- /// Allow dragging anywhere in container to scroll.
- /// </summary>
- public static bool defaultScrollTouchEffect = true;
- /// <summary>
- /// The "rebound" effect in the scolling container.
- /// </summary>
- public static bool defaultScrollBounceEffect = true;
- /// <summary>
- /// When the scrolling container is set to "snap to the item", the rolling distance threshold of which item is close to is determined.
- /// </summary>
- public static float defaultScrollSnappingThreshold = 0.5f;
- /// <summary>
- /// When the scrolling container is set to "page mode", it determines the scrolling distance threshold to which page to turn.
- /// </summary>
- public static float defaultScrollPagingThreshold = 0.3f;
- /// <summary>
- /// Resources url of PopupMenu.
- /// </summary>
- public static string popupMenu;
- /// <summary>
- /// Resource url of menu seperator.
- /// </summary>
- public static string popupMenu_seperator;
- /// <summary>
- /// In case of failure of loading content for GLoader, use this sign to indicate an error.
- /// </summary>
- public static string loaderErrorSign;
- /// <summary>
- /// Resource url of tooltips.
- /// </summary>
- public static string tooltipsWin;
- /// <summary>
- /// The number of visible items in ComboBox.
- /// </summary>
- public static int defaultComboBoxVisibleItemCount = 10;
- /// <summary>
- /// Pixel offsets of finger to trigger scrolling
- /// </summary>
- public static int touchScrollSensitivity = 20;
- /// <summary>
- /// Pixel offsets of finger to trigger dragging
- /// </summary>
- public static int touchDragSensitivity = 10;
- /// <summary>
- /// Pixel offsets of mouse pointer to trigger dragging.
- /// </summary>
- public static int clickDragSensitivity = 2;
- /// <summary>
- /// Allow softness on top or left side for scrollpane.
- /// </summary>
- public static bool allowSoftnessOnTopOrLeftSide = true;
- /// <summary>
- /// When click the window, brings to front automatically.
- /// </summary>
- public static bool bringWindowToFrontOnClick = true;
- /// <summary>
- ///
- /// </summary>
- public static float inputCaretSize = 1;
- /// <summary>
- ///
- /// </summary>
- public static Color inputHighlightColor = new Color32(255, 223, 141, 128);
- /// <summary>
- ///
- /// </summary>
- public static float frameTimeForAsyncUIConstruction = 0.002f;
- /// <summary>
- /// if RenderTexture using in painting mode has depth support.
- /// </summary>
- public static bool depthSupportForPaintingMode = true;
- /// <summary>
- /// Indicates whether to draw extra 4 or 8 times to achieve stroke effect for textfield.
- /// If it is true, that is the 8 times, otherwise it is the 4 times.
- /// </summary>
- public static bool enhancedTextOutlineEffect = false;
- [Obsolete("No use anymore.")]
- public static VertAlignType richTextRowVerticalAlign = VertAlignType.Bottom;
- /// <summary>
- /// Suggest to enable it on low dpi (e.g. 96dpi) screens.
- /// </summary>
- public static bool makePixelPerfect = false;
- public enum ConfigKey
- {
- DefaultFont,
- ButtonSound,
- ButtonSoundVolumeScale,
- HorizontalScrollBar,
- VerticalScrollBar,
- DefaultScrollStep,
- DefaultScrollBarDisplay,
- DefaultScrollTouchEffect,
- DefaultScrollBounceEffect,
- TouchScrollSensitivity,
- WindowModalWaiting,
- GlobalModalWaiting,
- PopupMenu,
- PopupMenu_seperator,
- LoaderErrorSign,
- TooltipsWin,
- DefaultComboBoxVisibleItemCount,
- TouchDragSensitivity,
- ClickDragSensitivity,
- ModalLayerColor,
- RenderingTextBrighterOnDesktop,
- AllowSoftnessOnTopOrLeftSide,
- InputCaretSize,
- InputHighlightColor,
- EnhancedTextOutlineEffect,
- DepthSupportForPaintingMode,
- RichTextRowVerticalAlign,
- Branch,
- PleaseSelect = 100
- }
- [Serializable]
- public class ConfigValue
- {
- public bool valid;
- public string s;
- public int i;
- public float f;
- public bool b;
- public Color c;
- public void Reset()
- {
- valid = false;
- s = null;
- i = 0;
- f = 0;
- b = false;
- c = Color.black;
- }
- }
- public List<ConfigValue> Items = new List<ConfigValue>();
- public List<string> PreloadPackages = new List<string>();
- void Awake()
- {
- if (Application.isPlaying)
- {
- foreach (string packagePath in PreloadPackages)
- {
- UIPackage.AddPackage(packagePath);
- }
- Load();
- }
- }
- public void Load()
- {
- int cnt = Items.Count;
- for (int i = 0; i < cnt; i++)
- {
- ConfigValue value = Items[i];
- if (!value.valid)
- continue;
- switch ((UIConfig.ConfigKey)i)
- {
- case ConfigKey.ButtonSound:
- if (Application.isPlaying)
- UIConfig.buttonSound = UIPackage.GetItemAssetByURL(value.s) as NAudioClip;
- break;
- case ConfigKey.ButtonSoundVolumeScale:
- UIConfig.buttonSoundVolumeScale = value.f;
- break;
- case ConfigKey.ClickDragSensitivity:
- UIConfig.clickDragSensitivity = value.i;
- break;
- case ConfigKey.DefaultComboBoxVisibleItemCount:
- UIConfig.defaultComboBoxVisibleItemCount = value.i;
- break;
- case ConfigKey.DefaultFont:
- UIConfig.defaultFont = value.s;
- break;
- case ConfigKey.DefaultScrollBarDisplay:
- UIConfig.defaultScrollBarDisplay = (ScrollBarDisplayType)value.i;
- break;
- case ConfigKey.DefaultScrollBounceEffect:
- UIConfig.defaultScrollBounceEffect = value.b;
- break;
- case ConfigKey.DefaultScrollStep:
- UIConfig.defaultScrollStep = value.i;
- break;
- case ConfigKey.DefaultScrollTouchEffect:
- UIConfig.defaultScrollTouchEffect = value.b;
- break;
- case ConfigKey.GlobalModalWaiting:
- UIConfig.globalModalWaiting = value.s;
- break;
- case ConfigKey.HorizontalScrollBar:
- UIConfig.horizontalScrollBar = value.s;
- break;
- case ConfigKey.LoaderErrorSign:
- UIConfig.loaderErrorSign = value.s;
- break;
- case ConfigKey.ModalLayerColor:
- UIConfig.modalLayerColor = value.c;
- break;
- case ConfigKey.PopupMenu:
- UIConfig.popupMenu = value.s;
- break;
- case ConfigKey.PopupMenu_seperator:
- UIConfig.popupMenu_seperator = value.s;
- break;
- case ConfigKey.TooltipsWin:
- UIConfig.tooltipsWin = value.s;
- break;
- case ConfigKey.TouchDragSensitivity:
- UIConfig.touchDragSensitivity = value.i;
- break;
- case ConfigKey.TouchScrollSensitivity:
- UIConfig.touchScrollSensitivity = value.i;
- break;
- case ConfigKey.VerticalScrollBar:
- UIConfig.verticalScrollBar = value.s;
- break;
- case ConfigKey.WindowModalWaiting:
- UIConfig.windowModalWaiting = value.s;
- break;
- case ConfigKey.AllowSoftnessOnTopOrLeftSide:
- UIConfig.allowSoftnessOnTopOrLeftSide = value.b;
- break;
- case ConfigKey.InputCaretSize:
- UIConfig.inputCaretSize = value.i;
- break;
- case ConfigKey.InputHighlightColor:
- UIConfig.inputHighlightColor = value.c;
- break;
- case ConfigKey.DepthSupportForPaintingMode:
- UIConfig.depthSupportForPaintingMode = value.b;
- break;
- case ConfigKey.EnhancedTextOutlineEffect:
- UIConfig.enhancedTextOutlineEffect = value.b;
- break;
- case ConfigKey.Branch:
- UIPackage.branch = value.s;
- break;
- }
- }
- }
- public static void SetDefaultValue(ConfigKey key, ConfigValue value)
- {
- switch (key)
- {
- case ConfigKey.ButtonSoundVolumeScale:
- value.f = 1;
- break;
- case ConfigKey.ClickDragSensitivity:
- value.i = 2;
- break;
- case ConfigKey.DefaultComboBoxVisibleItemCount:
- value.i = 10;
- break;
- case ConfigKey.DefaultScrollBarDisplay:
- value.i = (int)ScrollBarDisplayType.Default;
- break;
- case ConfigKey.DefaultScrollBounceEffect:
- case ConfigKey.DefaultScrollTouchEffect:
- value.b = true;
- break;
- case ConfigKey.DefaultScrollStep:
- value.i = 25;
- break;
- case ConfigKey.ModalLayerColor:
- value.c = new Color(0f, 0f, 0f, 0.4f);
- break;
- case ConfigKey.RenderingTextBrighterOnDesktop:
- value.b = true;
- break;
- case ConfigKey.TouchDragSensitivity:
- value.i = 10;
- break;
- case ConfigKey.TouchScrollSensitivity:
- value.i = 20;
- break;
- case ConfigKey.InputCaretSize:
- value.i = 1;
- break;
- case ConfigKey.InputHighlightColor:
- value.c = new Color32(255, 223, 141, 128);
- break;
- case ConfigKey.DepthSupportForPaintingMode:
- value.b = false;
- break;
- case ConfigKey.Branch:
- value.s = "";
- break;
- }
- }
- public static void ClearResourceRefs()
- {
- UIConfig.defaultFont = "";
- UIConfig.buttonSound = null;
- UIConfig.globalModalWaiting = null;
- UIConfig.horizontalScrollBar = null;
- UIConfig.loaderErrorSign = null;
- UIConfig.popupMenu = null;
- UIConfig.popupMenu_seperator = null;
- UIConfig.tooltipsWin = null;
- UIConfig.verticalScrollBar = null;
- UIConfig.windowModalWaiting = null;
- UIPackage.branch = null;
- }
- public void ApplyModifiedProperties()
- {
- EMRenderSupport.Reload();
- }
- public delegate NAudioClip SoundLoader(string url);
- /// <summary>
- ///
- /// </summary>
- public static SoundLoader soundLoader = null;
- }
- }
|