Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

DoozyUI: Complete UI Management System

Discussion in 'Assets and Asset Store' started by allemaar, 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. milkcorp

    milkcorp

    Joined:
    Feb 26, 2012
    Posts:
    11
    Hi,
    Thank you for the respond.
    I could found the settings in UI Manager.

    I have another issue about UI Notification.
    When I instantiate the notification window,

    1) It show up with no animation for an instant.
    2) It goes hidden.
    3) Starting animation.

    Can I fix 1) ?

    I use unity5.5.1f1, doozyui 2.7p4.

    thanks,
     
  2. YEN-LIN-WU

    YEN-LIN-WU

    Joined:
    Apr 14, 2013
    Posts:
    5
    I am the person who rated one star one the asset store. I emailed before but got no response, so I left one star there and hoped being seen. Anyway, i will adjust the rating later.

    I make a simple demo to show the issue. There are 2 ui elements A and B. While B element is active, A should not be doing anything. But the issue is that A is still animated.

    This problem was not there before 2.5 version. It seems that SetupElement in UIElement.cs causes the issue. So I modified the code a bit to bypass the problem.

    The attached file does not include DoTween nor complete Dozzy files.
     

    Attached Files:

  3. TommiH

    TommiH

    Joined:
    Jan 14, 2008
    Posts:
    252
    Hello Alex,

    Thanks for your response,

    I'm afraid you misunderstood what I wanted to do: I didn't want to instantiate and destroy the health bars all the time - I wanted to have a pool of them (not infinite, just "enough") and activate and deactivate them as needed. I want to use GUI for them because I don't want them to be affected by distance from the camera, nor do I want to clutter my enemy prefabs with GUI stuff. This shouldn't cause any significant performance issues as far as I understand.

    But I understand that this is not within the scope of Doozy UI, so I'll just implement this as a separate uGUI thing outside of Doozy UI. So your response did help me out.
     
  4. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @botojomomo,

    Thank you for telling us about this issue. DoozyUI uses Unity's native UI (uGUI) and this should not have happened.
    We'll look into it and see what caused this problem.

    Cheers,
    Alex
     
  5. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @milkcorp,

    Did you have this issue before updating to the 2.7p4 version or did you just notice this problem? We are asking to see where exactly to look in order to solve this issue. No worries, we'll get to the bottom of this.

    Cheers,
    Alex
     
  6. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @YEN-LIN-WU,

    We did not receive any email from you either at support@doozyentertainment.com or doozy.entertainment@gmail.com as we respond to all email and forum posts. Although we have been a bit swamped since we started working on the next major version (3.0) and we've been answering a bit slower, we try to be as prompt as possible and fix any issues.

    This problem was not there before 2.5 version
    We changed the animation system making it faster and with a smaller impact at runtime.

    It seems that SetupElement in UIElement.cs causes the issue. So I modified the code a bit to bypass the problem.
    We did a compare files with the UIElement.cs you provided and it seems you were using an older version of the UIElement script. What exactly was your issue? (so we know where to look)

    The attached file does not include DoTween nor complete Dozzy files.
    The attached unitypackage contained only the UIElement.cs script and no other files. Can you please send us another one with the demo scene so that we can have a better understanding of your setup. Thank you!

    We await to hear from you.

    Cheers,
    Alex
     
  7. botojomomo

    botojomomo

    Joined:
    Dec 28, 2016
    Posts:
    7
    Good to know it is a bug, thank you! Is there some place to report bugs other than this forum? I believe I have found another one:

    hide @ Start doesn't seem to work most of the time for me. I had an inventory panel that would always be shown at start, even with hide @ Start set. No changes I made to anything on the DoozyUI component made a difference. So I tried to make another panel, and it worked correctly. Finally, I create a new UI element, copied the settings from the inventory panel, and tried it again - that one hid at the start correctly, despite being identical to the one that wasn't.

    Now I have created another panel, and it is always showing at the start, even with hide @ start set. I recreated the UI Element from scratch, copied the objects in the panel to the new panel, and then changed the settings to be identical to the first panel - it properly hides at start. The first one still does not. The component panels are identical.

    I'm not sure what is happening! At least I have a workaround though.

    Thanks again for DoozyUI it's saved me so much pain and trouble already, good enhancements to Unity's UI system alone.
     
  8. wwenthin

    wwenthin

    Joined:
    Nov 1, 2013
    Posts:
    18
    Alex,
    You may want to look at your mail delivery. I also put in a support request to support@doozy and have not had a response. Sounds like your mail server might need some attention.

    Wayne
     
  9. milkcorp

    milkcorp

    Joined:
    Feb 26, 2012
    Posts:
    11
    Hi Alex,

    I had same issue before the 2.7p4.
    Thanks,
     
  10. Remiel

    Remiel

    Joined:
    Oct 17, 2012
    Posts:
    101
    I have a large UI window set up with Doozy UI that is obstructing my work on other UI elements. Therefore, I disable the game object with that window while I am working on the rest of the UI. However, I need to remember to re-enable that game object each time I enter play mode or have to build the game, otherwise, I won't be able to access that window in game.
    Is there a way to set up Doozy UI so that showing/hiding stuff would work as normal even if the window starts out disabled?
    If I set the element as "hide @Start" then Doozy UI will hide the element but it has to be active first. So it doesn't solve my problem. I would rather have a way to tell Doozy UI that the element is already hidden so that it can treat it as such in game.
     
  11. botojomomo

    botojomomo

    Joined:
    Dec 28, 2016
    Posts:
    7
    @allemaar

    There does not seem to be a way to add an item to the navigation history from code. I want to set up the Escape button in game to open the pause menu, but `UIManager.ShowUiElement` doesn't add the pause menu to the navigation history, so then the Back button doesn't work anymore. If I manually check for the game being paused and look up the pause menu in the elements list and then manually add a navigation, then every time I press the escape button it hides and then reloads the pause menu.

    What is the correct way to show a pause menu from code that also properly supports the back button click and pressing escape?
     
    Last edited: Feb 12, 2017
  12. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @wwenthin,

    Thank you for letting us know. We'll look into it right away.
    Please send us your request at doozy.entertainment@gmail.com so that we may look at your request.

    Cheers,
    Alex
     
  13. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @milkcorp,

    Thank you, that helps figuring out where the problem comes from. We'll keep you posted.

    Cheers,
    Alex
     
  14. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @Remiel.

    You might not be taking advantage of the option to 'use Custom Start Position' option that every UIElement has. Here is how to use it:
    1. Select your 'large UI window' UIElement
    2. Enable the 'use Custom Start Position'
    3. Click the 'set as current position' button
    4. Move that UIElement out of the way, anywhere in your scene
    5. Done

    What happens now is the following:
    1. At runtime, this UIElement will snap to the 'custom start position'
    2. It auto hides or gets disabled or it animated at start (depending on what your setup is)

    The 'use Custom Start Position' was introduced to the system in order to help you develop a complex UI without needing to have the UIElements stacked one over another. You just create your 'window', set its 'custom start position' and then you move it out of the way.

    Did this help you out?

    Cheers,
    Alex
     
  15. Remiel

    Remiel

    Joined:
    Oct 17, 2012
    Posts:
    101
    Thank you very much for the help. Yes, that will indeed solve the problem. :)
     
  16. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    Hi,

    I have a suggestion for the UI Button -
    • Could we have an additional Element list on the UI Button, Toggle Elements. I'd like a UI button to show an element on the first click and hide it on the second.
    I currently achieve this using a separate script, maintaining a list of elements I wish to toggle with a listener on the OnClick of the button, removing the elements from the Show element list and adding them to the Hide. Also toggling the OnClickSound. This all works nicely but it would be good to have it built in as standard.​
     
  17. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @botojomomo,

    We are working on version 2.8 to address these exact issues. It should be released next week.

    Thank you for telling us about this.

    Cheers,
    Doozy Entertainment
     
  18. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @botojomomo,

    The navigation history works as a stack (FILO) First In Last Out.
    The UIManager is listening for the escape key as well, as that is also the android back button.
    We recommend using another button for your pause menu, or, you can disable the Back button when you want to pause.
    To disable the back button you have the following mehtods available to manage the Back button functionality:
    UIManager.EnableBackButton()
    //Enables the 'Back' button functionality

    UIManager.DisableBackButton()
    //Disables the 'Back' button functionality

    UIManager.EnableBackButtonByForce()
    // Enables the 'Back' button functionality by resetting the additive bool to zero. backButtonDisableLevel = 0. Use this ONLY for special cases when something wrong happens and the back button is stuck in disabled mode.

    What is the correct way to show a pause menu from code that also properly supports the back button click and pressing escape?
    You can do that in 2 ways:
    1. Use an UIButton, set its name to 'TogglePause' and tick the "Add to Navigation"
    2. Or from code, you can call UIManager.TogglePause()

    Did this help you out?

    Cheers,
    Doozy Entertainment
     
  19. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @Nowlz,

    Yes, we have an UIToggle in testing mode at the moment.
    It's a component that we wanted to release sooner, but we had to change the animation system first.
    We will be adding this to DoozyUI quite soon.

    Cheers,
    Doozy Entertainment
     
  20. fabiorizzo

    fabiorizzo

    Joined:
    Feb 1, 2017
    Posts:
    4
    Hello,

    Do you have any example of how to use toggle function on Doozy UIButton?

    thanks!
     
  21. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45

    Good to hear.

    Thanks!
     
  22. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @fabiorizzo,

    The UIButton does not have a 'toggle mode' option, yet.
    We are testing one right now and it will be released with the next update (DoozyUI 2.8).
    The next update will come with a new Editor User Interface and a lot of fixes that we have already implemented in the system.

    Cheers,
    Doozy Entertainment
     
  23. botojomomo

    botojomomo

    Joined:
    Dec 28, 2016
    Posts:
    7
    Thanks, that's helpful but I don't think that's a good default for DoozyUI to implement. So far, having implemented DoozyUI in game, it seems like the in-game functionality is not planned for. The code makes assumptions that there's a base "MainMenu" UI Element, which is not the case inside of a game scene. There are some issues with UIManager.BackButtonEvent in game.

    1. Pressing escape in game is very commonly associated with a settings menu, not a "are you sure you want to quit" menu. I can name my pause menu as QuitMenu in game, but then Doozy assumes that it's a special menu. It sounds like on Android the "Back" button is expected to be a scene change, but I don't think makes sense as a default for other platforms like desktop/iOS.
    2. In the same method, an incorrect assumption is made that if the navStack is 0, then it must be in the main menu. navStack == 0 is is true also when you're in the game, so it should not assume to show the MainMenu or the QuitMenu. Here's the code where the assumption is:

    Code (CSharp):
    1. if (navStack.Count == 0) //if the navigation stack is empty then we must be in the main menu;
    2. // since the back button was pressed we show the quit panel
    3.  
    3. One last issue in that same method, there's a bug that causes any back button to toggle pause on/off. Meaning, if I pause and see the Pause menu, then enter the Settings menu and go back, Doozy unpauses, even though I'm still in the pause menu. I believe the correct behavior should check if the navStack is 0 after going back before unpausing. I made this change in my code, and now it works as expected in both the game and the main menu:

    Code (diff):
    1. diff --git a/Assets/Plugins/DoozyUI/Scripts/UI/UIManager.cs b/Assets/Plugins/DoozyUI/Scripts/UI/UIManager.cs
    2. index 0a325d5..e09d7bc 100644
    3. --- a/Assets/Plugins/DoozyUI/Scripts/UI/UIManager.cs
    4. +++ b/Assets/Plugins/DoozyUI/Scripts/UI/UIManager.cs
    5. @@ -3212,9 +3212,6 @@ namespace DoozyUI
    6.              if (backButtonDisabled) //if the back button is disabled we do not continue
    7.                  return;
    8.  
    9. -            if (gamePaused) //if the game is paused, we unpause it
    10. -                TogglePause();
    11. -
    12.              Navigation navItem = new Navigation();
    13.              navItem.showElements = new List<string>();
    14.              navItem.hideElements = new List<string>();
    15. @@ -3246,6 +3243,9 @@ namespace DoozyUI
    16.                      HideUiElement(navItem.hideElements[i]);
    17.                  }
    18.              }
    19. +
    20. +            if (navStack.Count == 0 && gamePaused) //if the game is paused, we unpause it
    21. +                TogglePause();
    22.          }
    23.  
    24.          /// <summary>
     
  24. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    106
    Does this package support draggable/movable/resizeable windows?
     
  25. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @botojomomo,

    Yes, the system makes some assumptions that are a bit restrictive design-wise.
    We are working a new system that is node based and has a visual interface, and that will be new navigation system.
    Thank you for telling us about your experience with the current implementation of the navigation system, we will take note of it in releasing the 2.8 version of DoozyUI that is in the works right now and that will come with a lot of changes and a new Editor User Interface.
    We are beginning the migration to the 3.0 system that has a smaller and more efficient code base, that is easier to manage and to extend. Our goal for 2017 is to start introducing complex components like lists, galleries and gesture commands (eg. swipe to show/hide) and so on.

    Cheers,
    Doozy Entertainment
     
    botojomomo likes this.
  26. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @Zymes,

    The current implementation does not support the features you are looking for, but we intend to add support for such features this year.

    Cheers,
    Doozy Entertainment
     
  27. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    Is there a road map you could publish with a list of future developments which are in the pipeline for 2.8 and 3.0 etc?

    It would be good to get a sense of what to expect in the short term and long term so we can plan around it. For example I've just spent some time developing my own list control but would perhaps have held fire if I knew it was currently in development.

    Are there any other big developments we should know about?

    For example is there any plan for a modal Element say?

    Thanks,
    David
     
    botojomomo likes this.
  28. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    As an aside,

    What would be the best way to use UIButtons / UIElements / UITriggers passing a variable (in this case an ID).

    Currently I'm passing the ID using the button name. I have a list of UIButtons, each button representing a record. I'm dynamically setting the button name of each button to "Record:<RecordID>"

    I then have a UIElement with a UITrigger set to listen for button clicks, dispatch all button clicks.

    Then in my event I'm separating the button name by ':' and populating and showing the UIElement with the relevant record information base on the <RecordID>.

    Is there another way to achieve this without having to pass the ID within the button name?
     
    Last edited: Mar 6, 2017
  29. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @Nowlz,

    Is there a road map you could publish with a list of future developments which are in the pipeline for 2.8 and 3.0 etc?
    Yes, we do have a road map on Trello. We will be updating our website after 3.0 comes out and add one there.

    Are there any other big developments we should know about?
    Yes. We listed some below:
    Things that are already done and tested
    - A new namespace 'Doozy.UI', instead of 'DoozyUI', will contain the new code (this has been done because we are expanding the system and we need to separate each component)
    - The package will be under Assets/Doozy instead of Assets/DoozyUI (this has been done because the code base is new and we need a new folder sorting method to acomodate all the new components)
    - A new UIAnimator that has a smaller code base, does a lot more (new animations) and is a bit more efficient.
    - UIManager has been stripped of all the code that was not related to it.
    - UIButton will come with a lot of interaction events (OnPointerEnter, OnPointerExit, OnPointerDown, OnPointerUp, OnClick, OnDoubleClick and OnLongClick)
    - UIButton will send 3 click types (OnClick, OnDoubleClick and OnLongClick) to the UIManager.
    - UIButton will have new animations available.
    - UIButton will be sorted by Category and Name. You will be able to create a lot of buttonNames and set them to different categories. It will be easier to manage.
    - UIButton will allow you to set a custom buttonName, without using the dropdown list system.
    - The Orientation Manager is no longer contained in the UIManager. but a component on it's own.
    - FontAwesome will be included in the asset thus giving you a huge scalable icons database readily available, without impacting your final build size.
    - Control Panel will have new options and it will be reorganized.
    - Regex search boxes have been added to help manage the databases.
    - All the animations will be converted from XML files to .asset files, as we are moving the system to a ScriptableObject approach.
    - UIElements will be sorted by Category and Name. This way, you will be able to create complex menus without having a huge elementName list.
    - UIElement will allow you to set a custom elementName, thus you will be able to add your own elementName without using the dropdown list system.
    - The sound system has been changed. There is a new component (Soundy) that will automatically play the sounds. No more instantiating the sounds at runtime. Also, you will also be able to link an audioClip instead of using a sound filename from a Resources folder.
    - UIToggle. Similar to an UIButton, but works as a toggle (also it has a Toggle, instead of a Button, component attached).

    Things that are almost done and need to be tested
    - We are removing the current implementation of the UI Navigation system and replacing it with a visual node based one (similar to PlayMaker). This will allow you to create, edit, save and load ui navigation structures. You will be able to see and edit your entire menu in a node graph view, thus no more show/hide options on the buttons. We are doing this because it will be easier to create an UI (and a lot faster).
    - The new Editor GUI for all the system's components need to be tested and adjusted. We developed a new way of working with the editor gui that makes it easier for us and gives you optimized components (they take up less memory when shown in the inspector).
    - UINotification will have a manager that will preload them and that will manage them like a pool system. This will optimize their usage.
    - Revamped PlayMaker actions.

    Things that are under development and might be included
    - A data binding solution for all the UI components. Allowing you to work with even less code.
    - A special manager that will manage the creation/destruction of UIElements at runtime. This will allow you to add referenced UIElement prefabs.
    - Because TextMeshPro will be included in Unity, we are considering dropping the support for it (as it is only used by the UINotification).

    Things that we intend to add to the system in the near future
    - Support for NodeCanvas
    - A transition system (from one scene to another)
    - Complex components like: GameSettings, ListView, GridView, Calendar and so on.
    - Gesture detection system. For example swipe up to show a menu, swipe down to show another menu.
    - Color palette system. This will allow you to set premade or custom color palettes to your entire UI.
    - Premade UIs. We are planning to release premade UIs that can be imported and you'll be ready to go. They will have customization options available.

    That would be a quick summary of what we've done so far, what we are doing now and what we have planned for the near future. These changes have been implemented and planned after we talked with some of you guys, any other suggestions are more than welcome.

    We will be recording a new video series to show you guys how to use the system and also to give you some ideas of how you can customize it to your liking. Of course, you will have access to the entire code (no DLLs).

    The support is a bit slow because we are trying to release the next version as soon as possible. There are thousands of lines of code that need to be tested and that takes a lot of work and time. Thank you for understanding.

    Cheers,
    Doozy Entertainment
     
    Last edited: Mar 10, 2017
    jprocha101 and johanneskopf like this.
  30. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @Nowlz,

    What would be the best way to use UIButtons / UIElements / UITriggers passing a variable (in this case an ID).
    The system was created to let you set up the settings in the Inspector. However, you can set the settings from code, should you want to.

    I then have a UIElement with a UITrigger set to listen for button clicks, dispatch all button clicks.
    Every UITrigger registers itself to the UIManager for either all gameEvents, all buttonClicks, one gameEvent or one buttonClick. They get triggered ONLY if that gameEvent or buttonClick happens, otherwise they do nothing. This was the most efficient way we found of working with the system.

    Why are you not using the UIManager + the UINavigation?
    UIManager.ShowElement(elementName);
    UIManager.HideElement(elementName);
    By having the UINavigation enabled, you can show/hide (on button click) any UIElement.

    Did this make sense to you?

    Cheers,
    Doozy Entertainment
     
  31. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    This all sounds very promising,

    Particularly looking forward to the new Sound system, the inclusion of Font Awesome and Category and Name sorting of Buttons and elements.

    Also the replacing of the Navigation system with a node based design will be a huge improvement.

    Can't wait, think I'll be locking myself in my office for a week on release while I refactor all my code.

    Thanks a lot,
    David
     
  32. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,023
    I set up a DoozyUI in a project last fall, then had to set it aside to do other stuff. Now I'm getting back to it, but the button sounds are not audible. All I've done is upgrade the project from 5.4 (I think) to 5.5. Any suggestions on how to debug that?
     
  33. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,008
    Hi,

    I've imported Dotween and Doozy into an empty project in Unity 5.5.2p3 and I'm getting these errors in the console:

    Any ideas please?

    Edit: Scrap that I didn't set up Dotween! All is fine now.
     
    LongFei likes this.
  34. ultraschall

    ultraschall

    Joined:
    Feb 14, 2013
    Posts:
    29
    @allemaar We noticed several problems when updating to 5.6. Can you give us a rough estimate for your next update please. thanks a lot.
     
  35. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,008
    What problems? I've just upgraded to 5.6 and haven't noticed any issues with DoozyUI yet.
     
  36. jay-jin

    jay-jin

    Joined:
    Jun 22, 2014
    Posts:
    12
    How long will 3.0 coming out, can't wait it....................:cool:
     
    Nowlz and jprocha101 like this.
  37. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi All,

    We are still working on 3.0, as an elegant and easy to use Node Graph solution is very hard to implement, but we're getting to the finish line very soon. In the mean time, we stopped and made some adjustments to the current DoozyUI version, by releasing the 2.7p5 version that addresses the following issues:

    UIElement: Now resets the child UIButtons animations. This fixes the normal/highlighted animations issues.
    - this happened when you would have a normal animation on an UIButton inside an UIElement that got hidden; on show the button's animation was messed up (because it had initialValues all wrong)

    UIButton: Now has a ResetAnimations method. It resets the normal/highlighted animations.
    - this was introduced to reset the loop animations (used mostly to fix the messed up animations after they have been hidden and then shown)

    UIAnimator: Updated the animator to use a faster/more efficient reset methods. This fixes the visibility of UIElements & UINotifications at start and when showing a notification.
    - this was a biggie, as when the game/app started you would see for a fraction of a second the UIElements (same happened when showing an UINotification); we're happy to say that is no longer the case.

    UINotification: Also gets registered on Awake besides OnEnabled
    - We are registering the UINotification on Awake as well because in very particular cases, the notification would not get registered on OnEnabled; this addresses this exact issue.

    Minor compatibility changes for Unity 5.6
    - We tested the code and all the example scenes in 5.6.0f3 (free and pro) to be sure it all works as expected; we are happy to say it does!

    If anyone has any issues on 5.6 please let us know, as it might be from your particular setup and we would like to cover as many use case scenarios as possible.

    This patch will be available will be live either later today or tomorrow as the Unity Asset Store team handles these types of updates quite fast.

    Cheers,
    Doozy Entertainment
     
    derkoi likes this.
  38. bromske

    bromske

    Joined:
    Sep 11, 2012
    Posts:
    28
    After updating to 5.6 i've some problems too.
    the problems are NaN values in recttransform when i use custom UIWidgets.
    Without Doozy or with Unity <5.6 +Doozy everything works fine
     

    Attached Files:

  39. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi @bromske,

    What are UIWidgets?
    From what asset did you install them?

    Cheers,
    Doozy Entertainment
     
  40. 8bitRick

    8bitRick

    Joined:
    Nov 18, 2013
    Posts:
    11
    *edit: put code into code format block

    Hello @allemaar,
    I sent you an email but from reading this forum I'm not sure if you'll get it. So I'm going to just paste it in here. Thanks for the hard work, here are just a couple of fixes/suggestions:

    I've been using Doozy UI for a couple of days and I overall like it but wanted to try to be a little helpful and give you my feedback.

    Some plugins are more demanding than others. I feel that Doozy does a pretty good job of using "regular" stuff in Unity which helps a lot with compatibility. That's great!
    However there are a few places where you still force users into your structure where it probably doesn't make sense.

    I'm assuming large number of your users already have projects/games they are working on, forums seem to support this idea too. So they probably have their own Cameras, Playmaker FSMs and stuff like that. If you could just change a couple of things to decouple your users from your system it would help. Here are some specifics.

    1. Cameras (just get the main, not your UI camera - especially true for people doing VR and stuff)
    uiCamera = UnityEngine.Camera.main; //GetUiContainer.transform.parent.GetComponentInChildren<Camera>();

    2. Playmaker (please don't require Playmaker FSM on your dispatcher)
    It makes sense for demo but for a real project that's probably not helpful. Users probably have several of their own FSMs already setup. Now you are creating another and make impossible to remove. Experienced Unity developers will hack the code but less experienced people might be gun shy. You may want to remove the requirement and also turn the override into an FSM array.
    //[RequireComponent(typeof(PlayMakerFSM))]

    3. Unity Layout Problems
    Ok, the internet thinks Unity's dynamic layout stuff is kind of broken right now. Unfortunately it seems like this stuff has been broken for awhile. I hacked your UIAnimator.cs with a work around. Even if you left this in your code after Unity fixed stuff I think it's not that bad, not a big performance issue. Without this fix stuff pops to the wrong location after moving off a button that was animating (assuming a dynamic layout element is positioning the button).

    Code (CSharp):
    1. public static void StopButtonLoopsAnimations(RectTransform rectTransform, InitialData initialData)
    2. {
    3.     if (rectTransform == null || initialData == null || rectTransform.GetComponent<UIButton>() == null)
    4.         return;
    5.     ResetRectTransform(rectTransform, initialData);
    6.     int id = rectTransform.GetInstanceID();
    7.     DOTween.Kill(id + "_DoMoveLoop");
    8.     DOTween.Kill(id + "_DoRotationLoop");
    9.     DOTween.Kill(id + "_DoScaleLoop");
    10.     DOTween.Kill(id + "_DoFadeLoop");
    11.     // Unity has a bug where the layouts don't update correctly (2017-04-07 / Unity 5.5.0p4)
    12.     // This bug has been around for awhile and may be around for the future
    13.     // This forces an update of at least the parent, this should be enough since we are only animating our local positions
    14.     if(rectTransform.parent) {
    15.         var layout = rectTransform.parent.GetComponent<UnityEngine.UI.LayoutGroup>();
    16.         if (layout && layout.enabled) {
    17.             layout.enabled = !layout.enabled; layout.enabled = !layout.enabled;
    18.         }
    19.     }
    20. }
    That's all I got for now. Please keep pounding away at it. I have replaced my own ghetto UI solution with yours and I am happier. If your latest updates had these types of fixes it will make taking updates much easier.

    Thanks,
    Rick
     
  41. 8bitRick

    8bitRick

    Joined:
    Nov 18, 2013
    Posts:
    11
    Is there a way to tell the system to finish hiding elements before beginning to show the next elements?
     
  42. 8bitRick

    8bitRick

    Joined:
    Nov 18, 2013
    Posts:
    11
    Couple more suggestions:
    1. Add ability to finish hiding elements before showing next.
    --- this would just be nice for those who want a more safe/sequential transition
    --- I've hacked in my own timer to put in a delay for every element transition

    2. Ability to hide extra elements when using back button.
    --- it's pretty common to have extra optional windows a user may want to pop up. The problem I have is when I click back I can't tell it to hide all my optional windows.
    --- I have hacked in this functionality by bypassing some of your special back button logic for the inspector and I let the back button process hide/show elements, like a normal button. You must do this right before "BackButtonEvent()" in UIManager.cs
     
  43. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    After the latest update my UIElement animation start sounds have stopped working.

    The OnClick sounds of the UIButton work just fine. But nothing I try will make the UIElement sounds work.

    If I put a break point on playSound I can see the moveIn.soundAtStart = "", however within the studio it definatley has a value.

    Any suggestions? I'm out of Ideas..

    The sounds are present in the Resources folder, I've tried resetting element sounds and re-adding but no luck.

    Edit: Tried to resolve by updating from Unity 5.5 to 5.6 but now none of my Doozy UI Elements will animate and UI Buttons are unresponsive.

    Update: The unresponsive UI Buttons was due to a missing GraphicRaycaster component, present in 5.5 but missing in 5.6. Re-added the GraphicRaycaster and the buttons now respond but all animations are still not working.
     
    Last edited: Apr 26, 2017
  44. Mirgan

    Mirgan

    Joined:
    Feb 2, 2016
    Posts:
    24
    I have same issues. In UIAnimator replace all soundAtStart on soundAtStartReference.soundName and soundAtFinish on
    soundAtFinishReference.soundName. Example on line 901, 904, 926, 929. It is necessary to rename the Doozy in Buggy/
    So many bugs like in Doozy I have never seen...
     
    Last edited: Apr 27, 2017
  45. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    Is this a known issue then @allemaar ? The UIElement animation sounds are not working in the Doozy UI Examples either.

    I can make changes to UIAnimator class as @Mirgan suggests but I'd rather wait if a fix is imminent?
     
  46. KiraMarshiku

    KiraMarshiku

    Joined:
    Apr 3, 2017
    Posts:
    1
    I'm just wondering if there is a way to make sure the ui looks the same way on different resolutions using this plugin, and if so how would you go about it? I'm trying to develop a game for mobile that will work on various resolution phones.
     
  47. bromske

    bromske

    Joined:
    Sep 11, 2012
    Posts:
    28
    @allemaar

    The NaN problem was a Unity5.6 bug, fixed in p3...
     
  48. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,023
    I've got several GUI elements which should animate onto screen upon scene load -- and they do, but first the flash for 1/2 second in their final position, which is obviously very distracting. I've got them set to animate@start. I've also set the "Use Custom Start Position" to their post InAnimation position and slid the UI object offscreen, but it still flashes for a moment in that visible location. How do I prevent this?
     
  49. allemaar

    allemaar

    Joined:
    Mar 4, 2015
    Posts:
    463
    Hi All,

    We have been swamped working for the 3.0 version as a complex UI system as this one is not easy to implement and test.

    Right now we just released version 2.7p6 that fixes most of the bugs you guys told us about.
    The element sounds issue is should be solved and also the UIElements should not be seen any more for a fraction of a second at start.

    Soon the 2.9 version will be released and it will have some breaking changes as it will be a bridge between the current implementation and the 3.0 one.

    Any new issues after the 2.7p6 version please write them here and we will do our best to fix them fast.
    There will be a dedicated person to respond as fast as possible on this account/thread.

    Thank you all!

    Cheers,
    Doozy Entertainment
     
    Nowlz likes this.
  50. Nowlz

    Nowlz

    Joined:
    Nov 18, 2016
    Posts:
    45
    Thanks @allemaar , I look forward to the new release.
     
    allemaar likes this.