Scripts/GUI

= UI = Example scripts using the new Unity UI system introduced in version 4.6. Designed for building high performance in-game user interfaces. Checkout the official Learn tutorials for more details.


 * SelectionBox - Display a button the same way as regular GUI, but return SimpleClik, DoubleClik, Drag or None.
 * WaitForUIButtons - A custom yield instruction to wait for an UI button click in a coroutine

= Immediate Mode GUI = Example scripts using Unity's "immediate mode" GUI (IMGUI) system. Meant to be used primarily for development purposes such as debugging displays and editor inspectors. For performance critical in-game UI you should use the newer UI system instead.


 * AdvancedButton - Display a button the same way as regular GUI, but return SimpleClik, DoubleClik, Drag or None.
 * AdvancedLabel - Easy way to change color, size and other parameters of a label.
 * AdvancedRepeatButton - A repeat button with control over the repeat start and speed.
 * AnimatedText - Display a label animated on position, size and transparency.
 * AutoType - Automaticly types a string of text typewriter style.
 * Box_Script - Use this system to easily make simple GUI elements in nice looking boxes with buttons that actually do something useful. All generated at runtime from a MenuStyle.
 * Button - Use this script on a guiTexture object for regular push buttons that send a message when clicked.
 * CheckableButtonTreeControl - A control to display hierarchy of checkable buttons with recursive screens.
 * Console System - A console system by Nicholas Ventimiglia for displaying scrolling text, text input, and a command button menu.
 * Custom_2D_Pointer - Make a custom pointer that changes shape at the edges of the screen.
 * Custom Mouse Pointer - Make a custom pointer that and draw it over OnGUI Elements.
 * CustomScrollView - Helper-class that implements a scrollview where you can explicitly hide/show the scrollbars. Done with two nested groups
 * DraggableGUIElement - Click and drag on GUITexture or GUIText to move it around the screen.
 * DragSlider - Use this script with a pair of GUITextures to make a functioning slider.
 * DMGInput - Passthrough for the Input.GetMouseButton* functions that will allow you to ignore clicks on registered GUI Rects. (Ex: Click on GUI, and not on the object behind in the scene.
 * Fade - General routines that allow fading of GUITextures or materials (including GUITexts) from anywhere, both in and out and using either alpha or colors, with optional easing.
 * FadeIn - Allows you to show/hide a GUIText or GUITexture when pressing a key/button.
 * FileBrowserWithColumns - Columns style file browser, allows the user to open and save files/folders from a Finder like GUI.
 * ForwardAllMouseEvents - Send mouse events to some sort of controller type GameObject.
 * GetTimeString - A simple function that can be placed anywhere and used to display times. Useful for racing games.
 * GUIBuilder - Generic classes for easing the pain of GUI creation. (BETA)
 * GUIFly - Use this script on an object to make it respond to a "Fly" message so that it may move on and off the screen in a pleasing manner.
 * GUIHelpers - a simple static class for helpers, AlignRect to start.
 * GuiRatioFixer - Use on a GUIText / GUITexture object to automatically adjust aspect ratio
 * GuiRatioFixer2 - Alternate script based on screen's aspect to use on a GUIText / GUITexture object to automatically adjust aspect ratio
 * GUIScaler - Automatically scale a GUITexture with the screen size / resolution
 * GUITextField - A wrapper for GUI.TextField / GUILayout.TextField that implements focussing, allowing text to be "committed" only when the field is unfocussed (very useful for networking code).
 * GUIUtils - A helper for creating dynamic GUI elements from differents sides of the screen with relative/absolute size (UnityScript, Unity 3.4).
 * Joystick - Unity Technologies' Joystick script translated into C#, with a slightly modified API.
 * JoystickButtonMenu - A C# class that can be used to create GUI buttons which respond to joystick input.
 * MainMenu - Shows how delegation works in C# in order to switch between different menus on the fly easily
 * ObjectLabel - Makes a GUIText label follow an object in 3D space. Useful for things like having name tags over players' heads.
 * ProgressBar - Simple How-To make a progress bar.
 * ScaledRect - A static class that formats Rect values and rescales them based on output screen resolution, handy for dynamically scaling all OnGUI elements.
 * ScreenShotMovie - Captures a screenshot sequence for use when making a movie
 * Selection-Grid - Custom Selection Grid using your texture of a grid, 1 draw calls
 * ShadowAndOutline - Draw shadows or outline under a GUI by drawing it several times.
 * SplashScreen - Fade a splash logo in, wait for a certain interval, then fade out, while the next level is loaded.
 * TakeScreenshot - Captures sequentially numbered screenshots when a function key is pressed.
 * ScreenCapture - Captures a screenshot using any of the three capture methods, either synchronously or asynchronously.
 * Timer - Attach to a GUIText object to create a fade-able timer.
 * ToggleButton - Extends the Button class to create a toggle button.
 * ToolbarWrapped - Wraps a toolbar/selection grid to always fit its rectangle.
 * WrapTextMesh - Wraps the text within a TextMesh based on width in font-pixels (points).
 * Blinking Text Entry Cursor - Make your cursor blink on input fields
 * CustomGetMouseButtonDown - custom wrapper functions for Input.GetMouseButton(Down) which can be modified to block clicks when over a window
 * DrawLine - Draws a line in the GUI (makes up for the severe lack of an equivalent function in the GUI class).
 * DropDownList - A hierarchy based drop down list that works like the Hierarchy window in Unity.
 * FileBrowser - Implement a crude file browser.
 * GUICam - Holds GUIRect a rectanle of camera pixelRect in GUI oriented co-oridinates (0,0) is top left
 * GUIExtensions - A library of GUI extensions to fill in some missing gaps. Notably:  TextArea that auto-selects on focus.
 * GUIx - extended GUI functions
 * ImprovedFileBrowser - A much better file browser.
 * ImprovedSelectionList - A list of elements that can be selected and optionally double-clicked
 * IOSTextField - Text fields for iOS with specialized keyboard configurations
 * Marquee - Creates a scrolling label that moves from left to right across the screen.
 * PasswordField - Allows the user to type in a field masked by *'s (or any other character) [Unity has this built-in now. Leaving it as an example of more complex widget construction, but shouldn't be preferred for actual usage.]
 * PauseMenu - Standard pause menu used by Fugu Games for web players and widgets
 * PopupList - A button that pops up a selectable list when clicked
 * Position To Rect - Convert a GUITexture position to Rect (GUI coordinates)
 * SelectList - A list of elements of which one can be selected.
 * WithPrefs - Functions that change values and modifies preferences in one simple step
 * LarsonScanner - simple cylon eye/knight rider scanner guiscript so you have a visual cue of a running program (and know it's not blocked/crashed)
 * FramesPerSecond - Use this script on a GUIText object to display FPS counter.
 * MessageDisplayer - Use this script on a GUIText object to have a self-disappearing list of status messages.
 * MessageList - Create a list of timed self-fading messages.
 * Radar - Use this script on a GameObject to display a radar.
 * GUI Keyboard - adds a really basic GUI keyboard that can input into text field.
 * UserInterfaceTrackBody - Use this script on a Unity5 UI object to track a real world object.