Search Unity

DoozyUI: Complete UI Management System

Discussion in 'Assets and Asset Store' started by AlexMares, Apr 13, 2016.

?

Would you like to see a free version of DoozyUI with limited features?

Poll closed May 12, 2016.
  1. Yes

    1 vote(s)
    33.3%
  2. No

    2 vote(s)
    66.7%
  1. Zanderfax

    Zanderfax

    Joined:
    Nov 2, 2016
    Posts:
    25
    Hello,

    I have a question on the Playmaker Event Dispatcher. I have a game manager with 3 FSM's and I want to dispatch events to each one. I added 3 Dispatchers, but I was not able to override the FSM to select a specific FSM. I select the game manager GameObject in the Event Dispatcher, but there is no way to select a specific FSM.

    What am I missing?

    Any help would be appreciated,

    Z
     
  2. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @camaech,

    You currently cannot get the UIButton from the name alone as there can be more than one UIButton with the same button name (for example the 'Back' button).

    Indeed, the UITrigger will react, on click, to the button name that it is listening for, but you cannot get the gameObject of the button that was clicked because of the aforementioned reason.

    If you are interested to know when a specific button was pressed, you can send a customized game event for that button, or you can use its OnClick UnityEvent.

    Did this make sense to you?

    Cheers,

    Doozy Entertainment
     
  3. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @sarebots2,

    We'll add this feature in a future update. We can implement a send game event with delay calculated in realtime.
    Thank you for your suggestion.

    Cheers,

    Doozy Entertainment
     
  4. dusoft

    dusoft

    Joined:
    Nov 22, 2016
    Posts:
    13
    Could it be that the integration with "energy bar" in the new version 2.8 does not work?
    Steps:
    1. Enable the Energy Bar toolkit integration
    2. Add the scene slice bar
    3. Click the "+" button in the scene manager to add a new power bar empty element
    3. Drag and drop the component of the slice, but it does not apply.
     
  5. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @zukinet,

    We cannot understand what you are trying to do. Can you please explain in a bit more details (maybe post a screenshot or two of your scene).

    Thank you,

    Doozy Entertainment
     
  6. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @AVOlight,

    What exactly do you need when you talk about localization an DoozyUI?
    Normally if you want to localize an app or a game you just swap out the sprites and the text.
    What do you have in mind when you talk about localization and the UI management system (the framework)?

    Cheers,

    Doozy Entertainmet
     
  7. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @dusoft,

    We will look into it and reply here what we find. Should it be a bug, we'll roll out a patch asap.
    Version 2.8.0p1 has been submitted a few hours ago with two bug fixes and we hope it will be live tomorrow.

    Thank you for telling us about this,

    Doozy Entertainment
     
  8. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @Zanderfax,

    Update to version 2.8 and you should be good to go. The PlayMaker Event Dispatcher has been fixed.and you can override the target with ease.

    Please tell us if after the update you are having the same issue.

    Thank you,

    Doozy Entertainment
     
  9. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
  10. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
  11. dusoft

    dusoft

    Joined:
    Nov 22, 2016
    Posts:
    13
    Ok, I'm using the latest version of Energy Bar Toolkit 3.1.1...
     
  12. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Hi one simple but really annoying problem I'm having with 2.8 is that whenever I play a scene or click on an element a window pops up saying "refreshing Loop animation database" is there a way to suppress this, really makes it difficult to work or at least is there a way to downgrade back to 2.7
     
    rayBLAST-R likes this.
  13. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Seems to occur when you select an element with a UIElement UIButton component on it.

    Why is this
     
  14. rayBLAST-R

    rayBLAST-R

    Joined:
    Dec 17, 2005
    Posts:
    28
    @ZayLong: I am also having a the same issue in regards to slowing my workflow. Basically it seems that the data refresh for all animations, IN, OUT, and LOOP, occurs if you have selected a Doozy UI game object in the editor or click run. This is very intrusive when trying to rapidly make changes to the UI.

    Separately, I am running into a funky issue where I get the following:
    "You are trying to HIDE the <My Game Object> UIElement, but you didn't enable any OUT animations. To fix this warning you should enable at least one OUT animation."

    I have tried adding every type of IN and OUT animations to the UIElement. I get the same result. This is happening inside one of my upgraded projects. I created a fresh project and imported Dotween, Playmaker, and DoozyUI. I was able to setup a new scene with 2 simple UIElements and buttons that triggered PM events that worked within about 20 mins. I am not sure what the difference is in the configuration as I have combed through all parameters and I have even stepped through the UIElements.cs class to find the logic that produces the log output. Not sure why the OutAnimationsEnabled bool is not being set when an OUT animation is assigned to a UIElement.

    Thoughts?

    btw... I like the new look. Had to get used to it at first, but I like where you guys are taking this.
     
  15. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @ZayLong,

    That is a side effect of Unity's Serialization. This happens only the first time you select a component that needs to access the database (as it rebuilds it).

    In order to have unified references to the system's databases (the UIElement names database, the UIButton names database and so on), we use a static class (DUI.cs) where we store the info.

    When you select an UIElement, for example, it needs to access that info in order to work with all the dropdown lists and also validate the settings that are on it. If the database is null, it automatically rebuilds itself.

    Now you may wonder, how do those references become null? The answer is simple 'Unity Serialization'. When you enter and exit play mode or change a script, Unity has to reload the mono assemblies (the dll's associated with Unity). So Unity needs to go through a 3 step process:
    1. Pull all the serializable data out of managed land, creating an internal representation of the data on the C++ side of Unity.
    2. Destroy all memory / information associated with the managed side of Unity, and reload the assemblies. (here we just lost out databases references)
    3. Reserialize the data that was saved in C++ back into managed land. (here we need to reload)

    The databases are public static Dictionaries and we cannot serialize them in order to avoid their destruction. Thus if you select an UIElement or an UIButton after the aforementioned events happen, their respective databases need to get rebuilt. Upon selecting other UIElements or UIButtons, that does not happen again until a recompile or enter/exit play mode event occurred.

    We are testing saving this data in a serialized object as an asset file, in the editor, but we are not close to a viable solution yet.

    This is the only drawback of managing so many databases of different types in Unity. If we find a better solution to keep the built databases 'alive' be sure that we will implement it.

    Should anyone have a suggestion/solution for a better approach for this, please let us know.

    Thank you,

    Doozy Entertainment
     
    Last edited: Jul 19, 2017
  16. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @rayBLASTER,

    To enable an In or an Out animation, at least one Move, Rotate, Scale or Fade transition should be enabled. Or you can set a preset to load at runtime (this overrides the values you have in the inspector).

    To add an In or Out animation from the presets, you select the preset category, then the preset name and then you press [Load Preset]. That will read the preset asset file settings and apply them to your targeted animation.

    Was your issue the fact that you did not enable one of the transitions?
    If not, we would like to take a look at your scene.

    We will be releasing quite a few new videos this month and the next, so that you guys understand better the new workflow and how the system works.

    I like the new look. Had to get used to it at first, but I like where you guys are taking this
    Thank you. It's not perfect, but it's a lot cleaner than the previous layout.

    Cheers,

    Doozy Entertainment
     
  17. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Incredible but we missed a typo :)) , the 'CONTORL PANEL' title and button.
    This will be fixed in version 2.8.0p2.
     
  18. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @dusoft,

    We can confirm that is a bug and we are to blame. :(
    The custom editor does not assign the value you try to reference. We fixed it and added it to version 2.8.0p2.

    Just so you do not have to wait until the fix is released please install the attached unitypackage. It will overwrite the SceneLoaderEditor.cs file and you should be good to go.

    Thank you for letting us know about this,

    Alex
     

    Attached Files:

  19. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    I'd take a look at the way Devdog handles databases with their Inventory Pro asset you can store massive amounts of items each with categories stats, leveling requirements, etc. and there's no overhead in the editor. They create a file based database in the actual asset directory specified by the user.
     
  20. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Thanks @ZayLong!
    We'll definitely look into it, if they can edit the database in the Editor in and out of Play Mode without any issues then we have a winner ;).
     
    Last edited: Jul 19, 2017
  21. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    pageAboutDoozyUIVersion.png
    Submitted for review!

    PLEASE BACKUP PROJECTS BEFORE UPDATING!!!
    Please let us know if you find any bugs (or solutions) so that we can improve the asset as fast as possible.

    ------
    Version 2.8.0p2
    ------
    Improved the rename button for the UIElement to work when multiple objects are selected.
    Improved the rename button for the UIButton to work when multiple objects are selected.
    Improved the rename button for the UIEffect to work when multiple objects are selected.

    Fixed a typo, the 'Contorl Panel' is now named properly 'Control Panel'
    Fixed the Scene Loader Editor not saving the Energy Bar reference (if using Energy Bar Toolkit)

    ------
    Version 2.8.0p1
    ------
    Improved Upgrade Manager to also update UIElement Canvas sorting layer name.

    Fixed Orientation Manager not updating the orientation in UIManager
    Fixed UINotification not showing as expected
     
  22. zukinet

    zukinet

    Joined:
    Oct 30, 2016
    Posts:
    51
    Hi Alex,

    Unity has release v2017.1 (i dont know why not 5.7 or 6.0).
    Are Doozy 2.8 support this unity version ?
     
  23. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @zukinet,

    DoozyUI 2.8 supports Unity from 5.6.0f3 and up. So to answer your question, yes.
     
  24. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Please check it out, I think it'll be useful to you. In the meantime is there a way to downgrade or get ahold of the 2.7 package? It was literally perfect. Best UI solution i've ever tried.

    I like 2.8 but having to pause for 15-20 seconds everytime I click on an UI element is insufferable.
     
  25. Zanderfax

    Zanderfax

    Joined:
    Nov 2, 2016
    Posts:
    25
    I am seeing the exact same issue with 2.8.
    upload_2017-7-19_10-14-20.png

    It sees the first one but gives me no way to select any other.

    Next step?
     

    Attached Files:

  26. rayBLAST-R

    rayBLAST-R

    Joined:
    Dec 17, 2005
    Posts:
    28
    Yes, sir. I do in fact have an animation assigned to the UIElement - a simple Fade transition for IN and OUT. I have also set the preset to try that - same result.

    I do have Playmaker installed and I noticed late last night that there was another Show Hide action. I am not in my office at the moment, but the action I used in my project was using a previous version of Doozy UI and it was named something like 'Show Hide Element' - I believe that was the name; will confirm. This one does not include a field for category name. I switched to the other action called 'Show Hide' which includes the category name. This allowed for my OUT transition to execute on one element, but I still get the warning for the other element in regards to needing an OUT animation in order to execute but it does have one assigned. So both 'Show Hide' actions are still available in Playmaker.

    I want to try a couple more things. If it does not work, I will send you the scene sans any proprietary assets.

    Thanks for the reply. Great customer service and community effort!!! :)
     
  27. rayBLAST-R

    rayBLAST-R

    Joined:
    Dec 17, 2005
    Posts:
    28
    @allemaar: All is good! Upgraded and cleaned the project. Everything works as it should. Thanks for updating!
     
  28. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @ZayLong,

    We are doing extensive optimizations to the databases load times right now.
    After that we will update the system to 2.8.0p3.

    Hold on with the downgrade and upgrade to 2.8.0p3 when it will be available. Then, please tell us if the pauses are still an issue.

    Thank you!
     
  29. zukinet

    zukinet

    Joined:
    Oct 30, 2016
    Posts:
    51
    Hi Alex,

    I have upgrade to 2.8, but everytime i quit Unity and Re-Open My Projects, The Doozy UI Structure come back to old, so I need to Click Upgrade & Clean Button Everytime i open my Projects....

    How to solve this?
     
  30. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @zukinet,

    After you upgrade, you cannot save the scene? (the asterisk does not appear to the right of the scene's name?)
     
  31. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    pageAboutDoozyUIVersion.png
    Submitted for review!
    PLEASE BACKUP PROJECTS BEFORE UPDATING!!!
    Please let us know if you find any bugs (or solutions) so that we can improve the asset as fast as possible.

    ------
    Version 2.8.0p3
    ------
    Improved databases load times. Now they load a lot faster.

    Fixed the Upgrade Manager to mark the opened scenes as dirty in order to force a save.
    Fixed the Upgrade Manager not to include the ~No Sound~ sound name to the new UISounds database.
     
    Last edited: Jul 21, 2017
  32. zukinet

    zukinet

    Joined:
    Oct 30, 2016
    Posts:
    51
    W
    What's asterisk, any example ?
     
  33. zukinet

    zukinet

    Joined:
    Oct 30, 2016
    Posts:
    51
    This was solved by adding new element, so OLD structure never come back again...

    However, i see everything select any Doozy Element, the Database Refreshing Progress Bar still appear....

    i have updated to last version (2.8.0p3)
     
  34. AVOlight

    AVOlight

    Joined:
    Apr 15, 2014
    Posts:
    427
    having localization integrated so that one may choose the language of the interface.
    I'm just wondering if you have a step-by-step guide for setting up localization with DoozyUI

    btw, your 2.8 updates is really Awesome! :)
     
  35. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    One other quick note, the 'Is Back Button' option isn't there anymore for UIButtons.

    I added the "Special name" Back to my button. But it doesn't work.

    It does work if I add the EnableBackButton event to the button.

    The 2.8 Documentation says to enable Is Back Button but that option isn't anywhere to be seen.

    Do I have to add an event every time I make a back button now? Thats a step backward not forward.
     
  36. Zanderfax

    Zanderfax

    Joined:
    Nov 2, 2016
    Posts:
    25
    Hello all,

    Another 2.8 Question, what is the difference between Events and Game Events on UI Button?

    Any help is appreciated!

    Z
     
  37. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @Zanderfax,

    The PlayMaker Event Dispatcher sends game events and/or button clicks to the Target FSM only. IT does this by sending FSM events with the same name as either a game event or a button name of the clicked button.

    In your screenshot you have not selected if it should dispatch game events and/or button clicks and you can change the targeted FSM just by dragging the component from the top to the reference slot (Target FSM). If you want to send events to all of those FSMs you need a dispatcher for each one.
     
  38. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @zukinet,

    The 2.8.0p3 version is not live yet, thus you don't have it yet. You can see your version in the Control Panel in the About Section. We submitted the version for review and are waiting for the Asset Store team to release it. You will notice a huge speed upgrade when the databases are loaded.
     
  39. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @AVOlight,

    We are recording the basic videos right now, and, after we release them, we will see how we can show a localization tutorial. There are a lot of ways to localize a game. I2 is good for text and images and Master Audio for sounds.
     
    AVOlight likes this.
  40. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @ZayLong,

    Did you try setting your button name as 'Back' ? (If it does not exist in the database, just add it.)
     
  41. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @Zanderfax,

    The EVENTS section has UnityEvents. If you notice the component you'll see that you can trigger any public method (or methods) for the referenced target (targets).

    The GAME EVENTS section is about the simple game event system used by DoozyUI. These are strings (so that you can easily read and understand) that you send to all the DoozyUI components that listen for it. You can send 'Game Over', for example, and if you have an UITrigger to listen for that, you can do all sort of things.

    These are different options that we wanted you guys to have at your disposal.You can use them both or just one, as they all work as intended. So if you prefer using UnityEvents, use those, and if you like the idea of Game Events (or at lease as we implemented it), then go with the latter. If you choose to use both at once, that's fine as well.

    We'll soon release basic components videos and you'll learn all about how they work. They are very easy to understand and use.
     
  42. Zanderfax

    Zanderfax

    Joined:
    Nov 2, 2016
    Posts:
    25
    @allemaar,
    I had not selected any dispatchers because I want to send the events to the gameState FSM. However, I have no way to choose that. How do I chose a different FSM than the 1st one that is default?

    Z
     
    Last edited: Jul 20, 2017
  43. Zanderfax

    Zanderfax

    Joined:
    Nov 2, 2016
    Posts:
    25
    Thanks! Just was not covered in the documentation.

    Z
     
  44. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Yes I set the name as back. It only works if I also add the game event "EnableBackButton" so is there some option thats keeping the back button disabled?
     
  45. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,315
    i have seen a unite video where they explain that when an object of a UI hierarchy is changed the whole canvas will be refreshed. so does DoozyUI support multiple canvas out of the box ?
     
  46. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33
    Ok so apparently if you have a UINotification Component in the scene it will automatically disable the back button @RunTime
     
  47. ZayLong

    ZayLong

    Joined:
    Jun 2, 2013
    Posts:
    33

    Updated and its a ton faster went from having to wait 20 seconds to maybe 2-3. This is satisfactory thank you
     
  48. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @ZayLong,

    Look at all of your UIButtons, as one of them might send a Game Event named 'DisableBackButton'. ;)
     
  49. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @Damien-Delmarle,

    There are several reasons why we 'force'/require every UIElement have a Cavnas and a Graphic Raycaster attached. One of them is this canvas refresh 'issue'. By having multiple child canvases, you can sort their order in layer and if something needs updating (inside a UIElement) - like a button animation or an image - only that canvas will get updated and not the entire UI. This optimization has been available for a long time in DoozyUI.

    And yes, DoozyUI now supports multiple canvases 'out of the box'. You can even create a prefab with parts of the UI and instantiate it, and it will work. We'll showcase this in a video tutorial. We wanted to make the system as flexible as possible and allow for easy development for VR as well. This also allows for the creation of very complex UI structures, that will work as expected, given they are set up and used properly.

    We worked 10 months on this update alone in order to make this system more easy to use and give you more options when it comes to UI structure design.
     
    Last edited: Jul 21, 2017
  50. AlexMares

    AlexMares

    Joined:
    Mar 4, 2015
    Posts:
    498
    Hi @ZayLong,

    That is the normal behaviour of an UINotification. If you do not want the notification to listen for the back button, just un-check the 'Listen for the 'Back' button' option on the UINotification.
    UINotification.png