Doozy UI 2.8 Manual
DoozyUI%202.8%20Manual
DoozyUI%202.8%20Manual
DoozyUI%202.8%20Manual
DoozyUI%202.8%20Manual
DoozyUI%202.8%20Manual
User Manual: Pdf
Open the PDF directly: View PDF 
.
Page Count: 41
- About DoozyUI
 - Thank You
 - Social
 - What can DoozyUI do for you?
 - Quick Start
 - Upgrade Guide
 - Control Panel
 - UI Manager
 - Soundy
 - UI Notification Manager
 - Orientation Manager
 - Scene Loader
 - UI Canvas
 - UI Element
 - UI Button
 - UI Effect
 - UI Trigger
 - UI Notification
 - PlayMaker Event Dispatcher
 - UI Navigation
 - Sound Settings
- At runtime, on Start, UIManager does a SoundCheck and a MusicCheck loading the settings saved in PlayerPrefs.
 - You may have noticed that UISounds require a strings to trigger. That is because we are loading the sound files from Resources folder, thus we don’t need any reference to them. This is useful since we will never get a NullReferenceException nor do we ...
 
 - Final Words
 

Contents 
About DoozyUI .............................................................................................................................................................. 3 
Thank You ...................................................................................................................................................................... 3 
Social ............................................................................................................................................................................. 3 
What can DoozyUI do for you? ......................................................................................................................................... 4 
Quick Start ......................................................................................................................................................................... 5 
Upgrade Guide .................................................................................................................................................................. 5 
Control Panel ..................................................................................................................................................................... 6 
Control Panel ................................................................................................................................................................. 6 
UIElements Database .................................................................................................................................................... 7 
UIButtons Database ...................................................................................................................................................... 8 
UISounds Database ....................................................................................................................................................... 9 
UICanvases Database .................................................................................................................................................. 10 
Animator Presets ........................................................................................................................................................ 11 
Editor Settings ............................................................................................................................................................. 12 
Hierarchy Manager ................................................................................................................................................. 12 
UIElement................................................................................................................................................................ 13 
UIButton .................................................................................................................................................................. 14 
UIEffect .................................................................................................................................................................... 15 
UI Manager ..................................................................................................................................................................... 16 
Soundy ............................................................................................................................................................................ 16 
UI Notification Manager ................................................................................................................................................. 16 
Orientation Manager ...................................................................................................................................................... 17 
Scene Loader ................................................................................................................................................................... 18 
UI Canvas ......................................................................................................................................................................... 20 
UI Element ....................................................................................................................................................................... 21 
In Animations .............................................................................................................................................................. 22 
Out Animations ........................................................................................................................................................... 23 
Loop Animations ......................................................................................................................................................... 24 
UI Button ......................................................................................................................................................................... 25 
On Pointer Enter / On Pointer Exit .............................................................................................................................. 26 
On Pointer Down / On Pointer Up .............................................................................................................................. 27 
On Click ....................................................................................................................................................................... 28 
On Double Click ........................................................................................................................................................... 29 
On Long Click ............................................................................................................................................................... 30 
UI Effect ........................................................................................................................................................................... 31 
UI Trigger ......................................................................................................................................................................... 32 
UI Notification ................................................................................................................................................................. 33 
PlayMaker Event Dispatcher ........................................................................................................................................... 35 
UI Navigation ................................................................................................................................................................... 36 
Special Buttons Names ............................................................................................................................................... 36 
Special Game Events ................................................................................................................................................... 36 
Sound Settings ................................................................................................................................................................ 37 
At runtime, on Start, UIManager does a SoundCheck and a MusicCheck loading the settings saved in PlayerPrefs.
 .................................................................................................................................................................................... 37 
You may have noticed that UISounds require a strings to trigger. That is because we are loading the sound files 
from Resources folder, thus we dont need any reference to them. This is useful since we will never get a 
NullReferenceException nor do we need to keep references to each sound. On the other hand, should you want to 
use references, just go ahead and reference your audio clips in the Control Pannel > UI Sounds database section.
 .................................................................................................................................................................................... 37 
Final Words ..................................................................................................................................................................... 38 

About DoozyUI 
DoozyUI  is  a  complete  UI  management  system  for  Unity.  It  manipulates  native  Unity  components  and  takes  full 
advantage of their intended usage. This assures maximum compatibility with uGUI, best performance and makes the 
entire  system  have  a  predictable  behaviour.  Also,  by  working  only  with  native  components,  the  system  will  be 
compaible with any ohter asset that uses uGUI correctly.  
Easy  to  use  and  understand,  given  the  user  has  some  basic  knowledge  of  how  Unity's  native  UI  solution  (uGUI) 
works, DoozyUI has flexible components that can be configured in a lot of ways.  Functionality and design go hand in 
hand in order to offer a pleasant user experience (UX) while using the system. 
Starting with version 2.8, DoozyUI is officialy VR READY, being capable of handling with ease multiple Canvases set to 
World Space render mode.   
The system has been redesigned, from the core up, in order to accomodate a higher degree of flexibility that was 
needed in order for it to handle a lot of different use case scenarios.  
The asset 'DoozyUI' has been released on the Unity Asset Store under the 'Doozy Entertainment' brand, owned by 
the Marlink Trading SRL company. 
Thank You 
We would like to thank you for buying DoozyUI as it helps us develop this product even further. 
Should  you  have  any  suggestions  or  find  any  bugs  (or  solutions)  please  let  us  know  so  that  we  can  improve  the 
system for you and anyone that uses it. 
You can get in touch via email at support@doozyentertainment.com or through the Unity Forums at 
https://forum.unity3d.com/threads/doozyui-complete-ui-management-system.397474 
Thanks! 
Doozy Entertainment 
Social 
Unity Forum: https://forum.unity3d.com/threads/doozyui-complete-ui-management-system.397474 
YouTube Channel: http://www.youtube.com/c/DoozyEntertainment 
Twitter: https://twitter.com/doozyplay 
Facebook: https://www.facebook.com/doozyentertainment 
What can DoozyUI do for you? 
 Speed up UI design and implementation time by using a set of intuitive components. 
 Manage all the UI from one location while giving you a plethora of options to interract with it. 
 Manage automatically the UI navigation by creating a navigation history and handling it using the First In -> 
Last Out (FILO) system. You can also handle the navigation yourself, especially if you are using a FSM system 
like PlayMaker. 
 Manage  the  loading  and  unloading  of  scenes  by  using  the  provided  SceneLoader.  It  also  supports 
EnergyBarToolkit, giving you the option to show any type progress bar while a scene is loading. 
 Manage an in-game notification system, using a queue system. (Example: if the player earns 3 achievements 
at once, the notifications will appear one after another, not all at once) 
 Trigger  anything  from  anywhere  by  using  UITriggers.  They  can  react  to  button  clicks  or  game  events  and 
trigger any method or set of methods you want, by using native Unity Events. 
 Trigger  from  IN  and  OUT  animations  one  or  more  methods,  using  native  Unity  Events,  @START  and/or 
@FINISH. 
 Animate any  uGUI  component  by using  a  responsive  animator  system that  calculates the  animation data, 
taking into account the actual screen size (be it Landscape or Portrait). 
 Use premade or custom animation presets. Any  presets you create ca be reused in future projects, as they 
are saved as .xml files. 
 Handle without any code the Back button event. 
 Handle without any code Sound and Music state (ON/OFF), also saving and loading  to and from PlayerPrefs 
their state. 
 Handle without any code Pause/Unpause. 
 Handle wihtout any code ApplicationQuit (or exit Play mode). 
 Integrade PlayMaker, MasterAudio and EnergyBarToolkit in an elegant manner. 
 Give  you  a  better  understanding  of  how  the  native  Unity  UI  components  work  by  watching  the  tutorial 
videos. 
 Give you a performace boos on mobile. As it has a very low impact on performance being mobile friendly!  

Quick Start 
1. Import DOTween 
2. Setup DOTween (from Tools > DOTween Utility Panel > [Setup DOTween]) 
3. Import DOOZY UI 
4. Done!  
Upgrade Guide 
If are upgrading from a version prior to 2.8 you need to do the following: 
1. Import DOOZY UI 
2. Wait for the Automated Upgrade Manager to process the databases 
3. Open the Upgrade Manager from Tools > DoozyUI > Upgrade Manager 
4. Open each scene that contains DoozyUI components and upgrade it with the help of the Upgrade Manager 
Window. Press [Upgrade Current Scene] for each scene. 
5. Once all the scenes have been upgraded you need to take a look at each component to be sure that all the 
settings  look as  expected. Since  this  is  a  new  core with  a  new  interface,  the upgrade  is  not  failproof  and 
minor issues may arrise. Please understand that we did all we could in order to make the upgrade process as 
painless as possbile. So be prepared to work a bit in order to get all your settings as before the update. 

Control Panel 
The Control Panle is your main interface with the system. You will be using it a lot during development and it 
contains all the system settings and databases. 
Control Panel 
1. Toggle support for PlayMaker, Master Audio and Energy Bar Toolkit 
2. Toggle the funtionality of the Orientation Manager and of the UI Navigation 
3. Look at some recommended assets that work well with DoozyUI 
4. Read the News about the system 

UIElements Database 
Here you can create, edit and delete UIElement element categories and element names. 

UIButtons Database 
Here you can create, edit and delete UIButton button categories and button names. 

UISounds Database 
Here you can create and delete UISounds. You also have a filter option available and sound preview buttons. 
Each UISound can have a name and an AudioClip reference. If an Audio Clip is not referenced, Soundy (the sound 
manager) will try to search for a soundfile under a Resources folder. If that fails, no sound will play. 
You can use the sound name as a tag for an AudioClip. 

UICanvases Database 
Here you can create and delete canvas names. These are the names used  to identify UICanvases. 
The canvas name is mostly used by the UINotifications so that they know what canvas to be shown on. 
The UICanvas also helps with resetting the sorting layer names of all of its children gameobjects. 

Animator Presets 
The Animator Presets allow you to view and change any type of preset. You can only see on preset type at one time, 
and you can select the type from the top tabs (In Animations, Out Animations, Loops and Punches). 
All the changes made here are saved in realtime for the loaded preset. Edit with care! 

Editor Settings 
These settings are used for the Unity Editor only as they are irrelevant for builds. 
Hierarchy Manager 
The Hierarchy Manager will show icons and other relevant informations to the right of any DoozyUI component in 
the Hierarchy View. You can toggle the manager on or off and any of its effects to suit your liking. 

UIElement 
Here you can hide the Rename Button or the Loop Animations sections, should you not want to use them. 
All the other settings are the Default Values that an UIElement will get when created. This will help you create your 
UI even faster as you may set the animation presets and other settings from the get go. 

UIButton 
Here ou a hide the Reae Butto or a uused tas like OPoiterEter, OPoiterEit ad so o…, should 
you not want to use them. 
All the other settings are the Default Values that an UIButton will get when created. This will help you create your UI 
even faster as you may set the animation presets and other settings from the get go. 

UIEffect 
Here you can hide the Rename Button, should you not want to use it. 
All the other settings are the Default Values that an UIEffect will get when created. This will help you create your UI 
even faster as you may set the sorting layer name, the order in layer and other settings from the get go. 

UI Manager 
Is the core of DoozyUI as it communicates with everything. You wil interract with it a lot in code and you should 
talke a look at the Api Documentation to see all the avaialble options (there are a lot). 
Soundy 
Is a simple sound manager that plays UISounds, Audio Clips and sound files located under a Resources folder. 
UI Notification Manager 
It keeps references to any UINotification prefabs, being an alternative to loading a notification from a Resources 
folder. Also it has all the logic to configure, load and show UINotifications. 

Orientation Manager 
This is a simple, yet very efficient, implementation of an orientation detector. You just enable it from the Control 
Panel and forget about it. It will work like magic (with zero overhead). 
Should you need to know when an orientation change occurs, then you can manually add it to the scene and hook 
yourself up to the provided UnityEvene. 
Hint: click the bar to update the orientation in Edit Mode 
Scene Loader 
A simple implementation of a scene loading solution that is integrated with DoozyUI. You can use game events to 
trigger the loading and unloading of scenes. 
If EnergyBarToolkit support is enabled another option will be available that will allow you to link progress bars. You can link as many loading 
bars you need to show the loading progress of the scenes. 
LoadSceneAsync_Name_[sceneName] 
Usage example: To load the scene named 'MySceneName_5' you need to send a game event with the command 
'LoadSceneAsync_Name_MySceneName_5', where 'LoadSceneAsync_Name_' is the first part of the command and 'MySceneName_5' is the 
name of the scene you want to load. 
Example code: UIManager.SendGameEvent(͞'LoadSceneAsync_Name_MySceneName_5͟); 
LoadSceneAsync_ID_[buildIndex] 
Usage example: To load the 5th scene in your build index you need to send a game event with the command LoadSceneAsync_ID_5', where 
'LoadSceneAsync_ID_' is the first part of the command and '5' is the build index number of the scene you want to load. 
Example code: UIManager.SendGameEvent(͞LoadSceneAsync_ID_5͟); 
LoadSceneAdditiveAsybc_Name_[sceneName] 
Usage example: To load the scene named 'MySceneName_5' you need to send a game event with the command 
'LoadSceneAdditiveAsync_Name_MySceneName_5', where 'LoadSceneAdditiveAsync_Name_' is the first part of the comman and 
'MySceneName_5' is the name of the scene you want to load. 
Example code: UIManager.SendGameEvent(͞LoadSceneAdditiveAsync_Name_MySceneName_5͟); 
LoadSceneAdditiveAsybc_ID_[buildIndex] 
Usage example: To load the 5th scene in your build index you need to send a game event with the command 'LoadSceneAdditiveAsync_ID_5', 
where 'LoadSceneAdditiveAsync_ID_' is the first part of the command and '5' is the build index number of the scene you want to load. 
Example code: UIManager.SendGameEvent(͞LoadSceneAdditiveAsync_ID_5͟); 
UnloadScene_Name_[sceneName] 
Usage example: To unload a scene named 'MySceneName_5' you need to send a game event with the command 
'UnloadScene_Name_MyScene_5', where 'UnloadScene_Name_' is the first part of the command and 'MySceneName_5' is the name of the 
scene you want to unload. 
Example code: UIManager.SendGameEvent(͞UnloadScene_Name_MyScene_5͟); 
UnloadScene_ID_[buildIndex] 
Usage example: To unload the 5th scene in your build index you need to send a game event with the command 'UnloadScene_ID_5', where 
'UnloadScene_ID_' is the first part of the command and '5' is the build index number of the scene you want to unload. 
Example code: UIManager.SendGameEvent(͞UnloadScene_ID_5͟); 
LoadLevel_ [levelNumber] 
shortcut command 
Usage example: To load level 5 you need to send a game event with the command 'LoadLevel_5', where 'LoadLevel_' is the shortcut command 
and '5' is the level you want to load. 
Example code: UIManager.SendGameEvent(͞LoadLevel_5͟); 
UnloadLevel_[levelNumber] 
shortcut command 
Usage example: To unload level 5 you need to send a game event with the command 'UnloadLevel_5', where 'UnloadLevel_' is the shortcut 
command and '5' is the level you want to unload. 
Example code: UIManager.SendGameEvent(͞UnloadLevel_5͟); 
Level Scene Name 
This is the name for your level scenes in build. Example: 'Level_1', 'Level_2' ... 'Level_100' 
This is a simple, yet very efficient, implementation of an orientation detector. You just enable it from the Control 


UI Canvas 
This components main purpose is to give the UINotification a target conainer when it is shown. 
It does other fancy stuff as well, like when creating an UIElement, an UIButton or an UINotification, it will pe 
parented to the selected UICanvas or to the Master Canvas. 
It also helps changing the sorting layer name of all of its children. 

UI Element 
This is one of the core components that you will be using extensively. It has a lot of options, but dont get scared, 
once you go through them, they are quite easy to use and understand. 
A special option is the Orientation, LANDSCAPE / PORTRAIT are visible only if the Orientation Manager is enabled. 
You tick the orientation you want your UIElement to be visible on. It can be Landscape only, Portrait only or both 
(default). 

In Animations 
These are the SHOW or ENTER animations. Look at the image below to get an idea of what everything does. 

Out Animations 
These are the HIDE or EXIT animations. Look at the image below to get an idea of what everything does. 

Loop Animations 
These are the animations that run in a loop after the UIElement has been shown. They start automatically, if they are 
enabled, after a SHOW and stop automatically before a HIDE. 
Should you need them to start by default (for example at runtime, for an UIElement that is already visible on 
screeen), just tick auto start as true. This setting is also useful if you are not using In and Out animations. 
Look at the image below to get an idea of what everything does. 

UI Button 
This is another one of the core components that you will be using extensively. It has a huge list of options, but dont 
get scared, once you go through them, they are quite easy to use and understand. And should you not need them all, 
you can hide them from the Control Panel > Editor Settings > UI Button. 

On Pointer Enter / On Pointer Exit 
Please see image for details. 
disable interval: after the pointer enters/exits, the functionality is disabled for the set number of seconds. 

On Pointer Down / On Pointer Up 
Please see image for details. 

On Click 
Wait for animation is enabled by default.. If true it will wait until the OnClick animation finised playing before 
sending the OnClick command (includes the show/hide and send game events actions). If false, it will send the 
OnClick command instantly without waiting for the animation to finish. Depends on the effect you are looking for. 
Single click mode marks if the click should be registered instantly without checking if it's a double click or not. 
 Instant - the click will get registered instantly without checking if it's a double click or not. This is the normal 
behaviour of a single click in any OS. Use this if you want to make sure a single click will get executed before 
a double click (dual actions). Usage example: SingleClick - selects, DoubleClick - executes an action. 
 Delayed - The click will get registered after checking if it's a double click or not. If it's a double click, the 
single click will not get triggered. Use this if you want to make sure the user does not execute a single click 
before a double click. The donwside is that there is a delay when executing the single click (the delay is the 
doulbe click register interval), so make sure you take that into account 

On Double Click 
Wait for animation is enabled by default.. If true it will wait until the OnDoubleClick animation finised playing before 
sending the OnDoubleClick command (includes the show/hide and send game events actions). If false, it will send 
the OnDoubleClick command instantly without waiting for the animation to finish. Depends on the effect you are 
looking for. 
Register interval is the time interval used to register a double click. This is the time interval calculated between two 
sequencial clicks to determine if either a double click or two separate clicks occured. 

On Long Click 
Wait for animation is enabled by default.. If true it will wait until the OnLongClick animation finised playing before 
sending the OnLongClick command (includes the show/hide and send game events actions). If false, it will send the 
OnLongClick command instantly without waiting for the animation to finish. Depends on the effect you are looking 
for. 
Register interval is the time interval used to register a long click. This is the time interval a button has to be pressed 
down to be considered a long click. 

UI Effect 
Helps you use native ParticleSystem components with the uGUI. It does the proper setup of the PartilcleSystem in 
order to get show in front or behinnd an UIElement. 
It is also linked to an UIElement and it automatically starts emitting particles when that UIElement is shown and then 
stops the emision of particles when the UIElement is hidden. 

UI Trigger 
It registers itself to the UIManager and in return it gets notified whenever the a game event or button click 
(depending of what listener is activ) has been sent. 
Upon being triggered, it invokes the UnityEvent and sends out any game events that have been set up. 
Its quite a simple system and because of the implementation you can have as many as you want as you wont see 
any performance drops. 
Dispatch all will listen and dispatch ALL game events or button clicks. You should be aware that in order for it to work 
as intended you must call a function that has a string as a paramater and it is VERY IMPORTANT that you select, in 
the 'On Trigger Event (String)' section, from the right drop down list, a function that is located in the 'Dynamic string' 
section (on top) and not the 'Static parameters' section (on bottom). 
UI Notification 
This is a special class that shows and configures modal windows that can be used in countless ways. From a simple 
tooltip, to an animated modal window with several buttons on it. 
Notification container is  a chld gameObject of the notification, with an UIElement component attached, that will 
serve as the main container of all the other notification elements. 
Background overlay shoud be a fullscreen overlay / color tint. An Image with an apha. 
Title is the text that will serve a the notifications title; a gameobject that should have either a Text or a 
TextMeshProUGUI component attached. For now Text Mesh Pro support has been removed. It will work in upgraded 
projects though. 
Message is the text that will serve a the notifications message; a gameobject that should have either a Text or a 
TextMeshProUGUI component attached. For now Text Mesh Pro support has been removed. It will work in upgraded 
projects though. 
Should you want to show a custom icon every time you show the notification, reference an Image component here 
and pass in the icon Sprite when you call the ShowNotification method. 
Buttons are the UIButtons you would like to be available for this notification. They can be turned on or off when you 
call the ShowNotification method. 
Special elements are other UIElements (for extra panache). If you added stars or anything else with an UIElement 
attached, you need to link it here. This list of UIElements allows you to create fancy animations with a lot of objects. 
If you added any effects with UIEffect attached, you need to link them here so that they can work as intended. 
Close button is a special button as it coveres the entire notification area. This allows the user to dismiss at once the 
notification, just by touching/clicking on it. (TIP: you can attach a Button component to the Overlay, link it here and 
have a full screen close button) 


PlayMaker Event Dispatcher 
For this dispatcher to work in Playmaker, you have to create FSM events named exactly as the Game Event 
commands or buttonNames that you want to listen for and react to, in the FSM. The event names are case sensitive. 
UI Navigation 
The system is turned on by default. Its enabled state can be toggled from the Control Panel. 
The Navigation System keeps track of all the registered navigation actions, using the First-In Last-Out (FILO) pattern, 
in  a stack.  To  register an  action  all  you need  to  do  is  check the  Add  to  Navigation  option on  any  UIButton  that 
shows or hides elements. 
Special Buttons Names 
 Back 
o simulates the Back button on android and it goes back to the previous menu activating the 
Navigation System 
o to set an UIButton as a Back button you need to check the Is Back Button option 
 TogglePause 
o Toggles the timescale pausing or unpausing the game 
o When pausing it tweens the timescale from the current value to zero in 0.25 seconds 
o When unpausing it tweend the timescale from zero to the initial timescale in 0.25 seconds 
 ToggleSound 
o Toggles the sound on/off while saving the value to PlayerPrefs 
o On enable sound it also triggers show SoundON and hide SoundOFF  elementNames 
o On disable sound it also triggers show SoundOFF and hide SoundON elementNames 
o This is useful since you can have 2 buttons one over another and make them look like a toggle 
 ToggleMusic 
o Toggles the music on/off while saving the value to PlayerPrefs 
o On enable music it also triggers show MusicON and hide MusicOFF  elementNames 
o On disable sound it also triggers show MusicOFF and hide MusicON elementNames 
o This is useful since you can have 2 buttons one over another and make them look like a toggle 
 ApplicationQuit 
o exits Play Mode (if in Unity Editor) or it executes Application.Quit 
Special Game Events 
 DisableBackButton 
o disables the Back button functionality 
 EnableBackButton 
o enables the Back button functionality (the Back button is enabled by default) 
 SoundCheck 
o does a sound check and shows the proper state for the sound button toggle 
 MusicCheck 
o Does a music check and shows the proper state for the music button toggle 
Sound Settings 
At runtime, on Start, UIManager does a SoundCheck and a MusicCheck loading the settings saved in PlayerPrefs. 
You may have noticed that UISounds require a strings to trigger. That is because we are loading the sound files from 
Resources folder, thus we dont need any reference to them. This is useful since we will never get a 
NullReferenceException nor do we need to keep references to each sound. On the other hand, should you want to 
use references, just go ahead and reference your audio clips in the Control Pannel > UI Sounds database section. 
If you enabled the Master Audio support Soundy will try to play the sounds using Master Audio. You need to have 
the sounds set up in Master Audio in oder for the system to work. 


