com.unity.uiextensions.nosa.../README.md

19 KiB

README

This is an extension project for the new Unity UI system which can be found at: Unity UI Source ###For Unity 5.2.2+ - Use the new 5.3 package!### ###*Note, due to limited demand, this is the last release we will update the 4.x/5.1/5.2 asset package, we'll be focusing on 5.3/5.4 from now on.###


#Supporting the UI Extensions project# If you wish to support the Unity UI Extensions project itself, then you can using the PayPal link below.

(paypal account not required and you can remain anonymous if you wish)

##>> Donate <<##


#Intro# For more info, here's a little introduction video for the project:

View Intro Video

You can follow the UI Extentions team for updates and news on:

Twitter / Facebook / YouTube###


What is this repository for?

In this repository is a collection of extension scripts to enhance your Unity UI experience. These scripts have been gathered from many sources and combined and improved over time.

The majority of the scripts came from the Scripts thread on the Unity UI forum here

You can either download / fork this project to access the scripts, or you can also download these precompiled Unity Assets, chock full of goodness for each release:

##Update 1.1##

Note To retain 5.2 compatibility in the 5.3 package, you will see two warnings related to:

`UnityEngine.UI.InputField.onValueChange' is obsolete.  

This has no effect on the package working in 5.4 plus and is only there to maintain backwards compatibility. We will look to update/remove this in a future release, likely after 5.4. If you have any concerns, feel free to update your code in your project to add the missing "d". Unity have ensured it still works as they have mapped the API change for now.


#Getting Started# To get started with the project, here's a little guide:

View Getting Started Video


#Updates:#

##Update 1.1## View 1.1 update Video

###New / updated features###

  • New Polygon primitive
  • New UI Vertical Scroller control
  • New Curved layout component
  • New Shining effect
  • New UI Particle system
  • New Scroll Conflict Manager
  • Soft Alpha Mask updated in line with SAUI 1.3 release
  • Line Renderer has had a complete overhaul, including full programmatic support, Line list and Bezier line rendering
  • Horizontal and Vertical Scroll Snaps updated to include a Starting page, current page and transition speed parameters. Plus a new GoToPage, Add and Remove page functions
  • Added some script helper functions for LZF compression and Serialization
  • Two utilities to help manage drag thresholds on high PPI systems

###Fixes###

  • Line Render almost completely re-written with tons of fixes
  • Radial layout updated to avoid 360 overlap (first and last)
  • Scroll Snaps updates to better handle children.
  • Scroll Snaps distribute function updated so it can be called onDirty more efficiently.

##Upgrade Notes## A few scripts from earlier releases were moved and need their originals need deleting post upgrade. Please remove the following files if found:

  • Scripts\ImageExtended.cs
  • Scripts\UIScrollToSelection.cs
  • Scripts\UIScrollToSelectionXY.cs
  • Scripts\UISelectableExtension.cs
  • Scripts\Effects\UIImageCrop.cs

##Release History##

For the full release history, follow the below link to the full release notes page.

Release Notes###


#Controls and extensions listed in this project:#

Controls

================

Control Description Menu Command Component Command Notes Donate Credits
Accordion An Acordian style control with animated segments. Sourced from [here]. N/A Component / UI / Extensions / AccordionGroup demo video ChoMPHi
Component / UI / Extensions / AccordionItem demo video ChoMPHi
HSVPicker A colour picker UI N/A UI / Extensions / HSVPicker Project folder includes prefab and sample scene judah4
SelectionBox An RTS style selection box control UI / Extensions / Selection Box UI / Extensions / Selection Box tutorial video Korindian, BenZed
UIButton Improved Button control with additional events (PointerDown, PointerUp, PointerClick and PointerHeld) UI / Extensions / UI Button UI / Extensions / UI Button Will update video, this has now been updated to a more reusable Selectable extension AriathTheWise
UIFlippable Improved Image control with image flipping options UI / Extensions / UI Flippable UI / Extensions / Flippable tutorial video ChoMPHi
UIWindowBase A draggable Window implementation UI / Extensions / UI Window Base UI / Extensions / UI Window Base tutorial video GXMark, alexzzzz, CaoMengde777, TroyDavis
ComboBox A fixed combobox implementation for text UI / Extensions / ComboBox UI / Extensions / ComboBox tutorial video Perchik
AutoCompleteComboBox A text combobox with autocomplete selection UI / Extensions / AutoComplete ComboBox UI / Extensions / AutoComplete ComboBox tutorial video Perchik
DropDownList A basic drop down list with text and image support UI / Extensions / Dropdown List UI / Extensions / Dropdown List tutorial video Perchik
BoundToolTip An alternate Tooltip implementation with central listener UI / Extensions / Bound Tooltip / Tooltip UI / Extensions / Bound Tooltip / Tooltip Item Offset and tooltip placement needs work Martin Sharkbomb
UI / Extensions / Bound Tooltip / Tooltip Trigger Martin Sharkbomb

Primitives

================

Control Description Menu Command Component Command Notes Donate Credits
UILineRenderer Graphic control for drawing lines in the UI System UI / Extensions / Primitives / UI Line Renderer UI / Extensions / Primitives / UI Line Renderer tutorial video jack.sydorenko
UILineTextureRenderer Graphic control for drawing lines in the UI System UI / Extensions / Primitives / UI Line Texture Renderer UI / Extensions / Primitives / UI Line Texture Renderer tutorial video jack.sydorenko, jonbro5556
UICircle Graphic control for drawing circles in the UI System UI / Extensions / Primitives / UI Circle UI / Extensions / Primitives / UI Circle tutorial video zge
DiamondGraph Graphic control for drawing a diamond in the UI System UI / Extensions / Primitives / DiamondGraph UI / Extensions / Primitives / DiamondGraph 5.2+ only tutorial video koohddang
UICornerCut Graphic control for drawing a diamond in the UI System UI/Extensions/Primitives/Cut Corners UI/Extensions/Primitives/Cut Corners Freezy
UIPolygon Graphic control for drawing custom polygons in the UI System UI/Extensions/Primitives/UI Polygon UI/Extensions/Primitives/UI Polygon CiaccoDavide

Layouts

================

Layout Description Menu Command Component Command Notes Donate Credits
HorizontalScrollSnap A pages scroll rect that can work in steps / pages, includes button support UI / Extensions / Horizontal Scroll Snap Layout / Extensions / Horizontal Scroll Snap tutorial video BinaryX
VerticalScrollSnap A pages scroll rect that can work in steps / pages, includes button support UI / Extensions / Vertical Scroll Snap Layout / Extensions / Vertical Scroll Snap tutorial video BinaryX, Simon Darkside Jackson
FlowLayoutGroup A more rugged grid style layout group Layout / Extensions / Flow Layout Group Example Video Simie
RadialLayout A radial layout system Layout / Extensions / Radial Layout tutorial video Danny Goodayle
TileSizeFitter A fitter layout that will shink / expand content by tiles Layout / Extensions / TileSizeFitter tutorial video Ges
ScrollSnap An alternate scroll snap control supporting both Horizontal and Vertial layous in one control UI / Extensions / Fixed Item Scroll / Snap Horizontal Single Item xesenix
UI / Extensions / Fixed Item Scroll / Snap Horizontal Multiple Item xesenix
UI / Extensions / Fixed Item Scroll / Snap Vertical Single Item xesenix
UI / Extensions / Fixed Item Scroll / Snap Vertical Multiple Item xesenix
ReorderableList A dynamic control allowing drag and drop of child elements with reordering support UI/Extensions/Re-orderable Lists/Re-orderable Vertical Scroll Rect UI/Extensions/Re-orderable list Example Ziboo
UI/Extensions/Re-orderable Lists/Re-orderable Horizontal Scroll Rect Ziboo
UI/Extensions/Re-orderable Lists/Re-orderable Grid Scroll Rect Ziboo
UI/Extensions/Re-orderable Lists/Re-orderable Vertical List Ziboo
UI/Extensions/Re-orderable Lists/Re-orderable Hirizontal List Ziboo
UI/Extensions/Re-orderable Lists/Re-orderable Grid Ziboo
VerticalScroller Rolling scrolling selector UI / Extensions / Vertical Scroller Layout / Extensions / Vertical Scroller tbc Donate
CurvedLayout A curved layout system Layout / Extensions / Curved Layout tbc Freezy

Effect components

=====================

Effect Description Component Command Notes Donate Credits
BestFitOutline An improved outline effect UI / Effects / Extensions / Best Fit Outline Melang
CurvedText A Text vertex manipulator for those users NOT using TextMeshPro (why ever not?) UI / Effects / Extensons / Curved Text Breyer
Gradient Apply vertex colours in a gradient on any UI object UI / Effects / Extensions / Gradient Breyer
LetterSpacing Allows finers control of text spacing UI / Effects / Extensions / Letter Spacing Deeperbeige
NicerOutline Another outline control UI / Effects / Extensions / Nicer Outline Melang
RaycastMask An example of an enhanced mask component able to work with the image data. Enables picking on image parts and not just the Rect Transform UI / Effects / Extensions / Raycast Mask senritsu
UIFlippable Image component effect to flip the graphic UI / Effects / Extensions / UI Flippable ChoMPHi
UIImageCrop Shader based mask system which clips to specific ranges X&Y UI / Effects / Extensions / UI Image Crop 00christian00
SoftAlphaMask Shader based mask able to clip images using an alpha mask UI / Effects / Extensions / Soft Mask Script Donate NemoKrad
CylinderText Allows finers control of text spacing UI / Effects / Extensions / Cylinder Text Breyer
UIParticleSystem Implementation of a particle system on a canvas UI / Effects / Extensions / UI Particle System 5.3+ only Glennpow

VR Components

=======================

Component Description Component Command Notes Donate Credits
VRCursor Cursor script for VR use (requires VRInputModule) UI / Extensions / VR Cursoe Ralph Barbagallo
VRInputModule Input module to support the VR Cursor Event / Vr Input Module Ralph Barbagallo

Input Modules

=======================

Component Description Component Command Notes Donate Credits
AimerInputModule Replacement Input module to allow for a reciclue to interace with WorldSpace canvas UI Event / Extensions / Aimer Input Module Chris Trueman
GamePadInputModule Stripped down SIM Input module for just gamepad/keybord input Event / Extensions / GamePad Input Module Simon (darkside) Jackson

Additional Components##

=======================

Component Description Component Command Notes Donate Credits
ReturnKeyTrigger Does something?? UI / Extensions / ReturnKey Trigger Melang, ddreaper
TabNavigation An example Tab navigation script, updated to add manual navigation UI / Extensions / Tab Navigation Melang, omatase
uGUITools Menu / uGUI Senshi
ScrollRectTweener Tweening solution for ScrollRects, add smoothing automatically UI / Extensions / ScrollRectTweener Martin Sharkbomb
ScrollRectLinker ScrollRect Linker script, enable multiple ScrollRects to move together UI / Extensions / ScrollRectLinker Martin Sharkbomb
ScrollRectEx Improved ScrollRect control, enables support for Nested ScrollRects UI / Extensions / ScrollRectEx CaptainSchnittchen, GamesRUs
InputFocus Enhanced InputField control for forms, enables Enter to submit and other features UI / Extensions / InputFocus Zelek
ImageExtended Improved Image control with rotation support and use of filled type without an Image (useful for masks) UI / Extensions / Image Extended Ges
UIScrollToSelection Enables a ScrollRect to scroll based on the selected child automatically UI / Extensions / UIScrollToSelection zero3growlithe
UISelectableExtension Refactor of original UI Button control, can now add Press/Release and Hold events to any Selectable control UI / Extensions / UI Selectable Extension AriathTheWise / Simon Jackson
switchToRectTransform RectTransform extension method to move one Rect to another N/A Izitmee
ScrollConflictManager Resolves dragging issues with multiple nested scroll rects UI / Extensions / Scrollrect Conflict Manager srinivas sunil
CLFZ2 LZF Compression library to compress data N/A Check the readme in the Utilities folder mrbroshkin, Agent_007
Serialization Serialization library to enable serializing Unity struct types like Vectors, Quaternions N/A Check the readme in the Utilities\serialization folder Cherno
DragCorrector Utility to manage the EventSystem drag threshold for high DPI systems UI / Extensions / Drag Corrector FireOApache
PPIViewer Simple script to attach to a text component to display the currnet DPI/PPI UI / Extensions / PPI Viewer FireOApache

More to come

=======================

How do I get set up?

Either clone / download this repository to your machine and then copy the scripts in, or use the pre-packaged .UnityPackage for your version of Unity and import it as a custom package in to your project.

Contribution guidelines

Got a script you want added? Then just fork the bitbucket repository and submit a PR. All contributions accepted (including fixes) Just ensure

  • The header of the script matches the standard used in all scripts
  • The script uses the Unity.UI.Extensions namespace so they do not affect any other developments
  • (optional) Add Component and Editor options where possible (editor options are in the Editor\UIExtensionsMenuOptions.cs file)

License

All scripts conform to the BSD license and are free to use / distribute. See the LICENSE file for more information

Like what you see?

All these scripts were put together for my latest book Unity3D UI Essentials Check out the page on my blog for more details and learn all about the inner workings of the new Unity UI System.

The downloads

As this repo was created to support my new Unity UI Title "Unity 3D UI Essentials", in the downloads section you will find two custom assets (SpaceShip-DemoScene-Start.unitypackage and RollABallSample-Start.unitypackage). These are just here as starter scenes for doing UI tasks in the book.

I will add more sample scenes for the UI examples in this repository and detail them above over time.