Search Unity

Out of the box UI features

Discussion in 'Editor & General Support' started by Kev00, Aug 24, 2017.

  1. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    Does anyone know if Unity is focused on improving its out of the box UI components? Or will this functionality be permanently relegated to the Asset Store?

    Thinking back, even Visual basic 3 (1991) had completely functional Forms, sortable List Boxes, grids, etc. It would be nice if Unity tried to mimic the default controls that ship with Windows Forms applications - proven UI controls which have been around for decades.
     
    Last edited: Aug 24, 2017
    Player7 likes this.
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,702
    It's probably appropriate to relegate them to the Asset Store rather than bulking up UnityEngine.UI. Most people are making Crossy Road and Superhot, not Microsoft Excel. I'd rather the Unity team focus on refining the performance of the core UI components and leave the more elaborate components to Asset Store developers.
     
    ippdev, TeagansDad and Kiwasi like this.
  3. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Agreed - but it's worth noting that with hololens and the like on the horizon - there might be a lot more traditional apps written in 3d in the not so far future.
     
    TonyLi likes this.
  4. makemydaypunk

    makemydaypunk

    Joined:
    Aug 12, 2017
    Posts:
    28
    I agree as a higher level out of the box set of features then lets asset store developers provider higher level features again and provides new developers a better toolset.

    Unity could have a richer base set of features across all aspects of the engine. This would benefit everyone and allow asset store developers to make higher level items as opposed to leaving developers to try and fill the gaps with disparate asset store solutions that they then have to get working together.
     
  5. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    There is a reason why applications developed in Visual Basic and now Windows Forms are so successful for small time applications. Having a default set of controls does not in anyway mean that we are trying to create an MS Excel LOL.

    I'd argue that many people are making RPG games, so not having a basic set of UI controls like Forms, sortable Listboxes and Grids is annoying, even for an experienced programmer. IMO, the ScrollView doesn't go far enough.

    In addition for a simple form like this one I really shouldn't need to buy an asset. In VB or Windows forms I can recreate this in less than 5 mins (with multi-selection and sorting). I'd just create a form, drop two listboxes, and a few buttons, and some very simple event code and I'm done. I could do this quickly in 1991, but not in 2017 with Unity.

    listboxes.PNG
     
    Martin_H likes this.
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,204
    Then you're using the wrong game engine. :p
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,702
    That's a fair enough argument. Unity UI is open source if you want to contribute code to save others the same headache in the future.
     
    theANMATOR2b likes this.
  8. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    I totally agree, in fact in the Windows space (for VB and Windows Forms) entire companies like Infragistics sprung up.
    They made a fortune despite the development tools providing high level out of the box UI controls.

    There really isn't much to think about in this regard.. These are simple problems that were solved a long time ago in the application space. IMO, there is an opportunity here for Unity.
     
  9. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    oh but you know us programmers, hording on to our code.... not letting anyone get a free ride. :) sure, I'd be more than happy to contribute. I'd just rather finish my game first :)
     
    Martin_H likes this.
  10. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    LOL
     
  11. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    I learned to develop using Borland's Turbo Pascal and it's amazing Delphi programming tools that included an amazing RAD IDE framework well ahead of MS's toolset (circa 1995).


    It's sad that we sometimes go backwards and not forwards with technology.
     
    ShilohGames and Martin_H like this.
  12. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    *Respect*

    yes, I remember that...It was a very good tool oh Pascal I can Div that. ..:) C++ builder was also great.

    but, I thought MS was out with VB before that (1991-1993) ...
     
    Last edited: Aug 24, 2017
  13. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,536
    That would be nice, but it's not something every game has. Like @TonyLi points out, most people are making pretty basic things and Unity has a huge share in the lightweight mobile market. Adding more to the UI system could very easily lead to bloat that the bulk of the userbase doesn't want or need. You can simply extend it yourself or get addons from the store to accomplish your scope as needed. This is how Unity is designed.

    Also, VB was basically defined by that feature. Unity is defined by its flexibility.
     
  14. mysticfall

    mysticfall

    Joined:
    Aug 9, 2016
    Posts:
    649
    I might agree that the default UI shipped with Unity need not provide all the common components that are used in desktop applications. But I think they should at least provide a solid ground to build such components upon when needed, which seems to be lacking at the moment.

    Things like localization or styling of UI components better be supported out of the box with editor suppport, while the role of providing more number of components can be delegated to the Asset Store.
     
  15. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    I really wish they would focus on polishing up the ugui components with better features... to this day the scroll feature still treats mousewheel up/down scrolling like 1 pixel up/down when scrolling text with the mousewheel lol.. I mean its just extra S*** you have to go in a fix.

    ... and add a decent scenetab that is specific for working with ugui components (without having to micromanage the rest of the scene hierarchy S*** so it doesn't distract or block ugui components in view or making your workaround solutions to it.) plus some decent grid layout feature wouldn't go a miss...including a better way to check layouts for the all F***ing mobile devices and their varying screen size differences.

    Anyway the https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/ is what I use.. not exactly super polished either, however it does bring in some useful improvements and additions plus the source is directly in your project to make minor/major changes to those components.. instead of faffing about getting the official unity source for it and trying to make changes to that etc

    If unity ever did polish its ugui system /components to compare with MS winforms etc.. I think many would want to make non-games with it.. its super easy and cross platform deployment isn't as a big fking over complicated poorly documented retarded mess like dealing with other multi platform frameworks I wont mention because they all really suck in some way or alot of ways. I mean unless you're getting paid to deal with that S*** then yeh you'd get used to it.
     
    TeagansDad and Martin_H like this.
  16. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Styling of ugui components is what I keep hoping the nested prefab implementation will focus on alleviating and making easier to do because to me the nested prefab implementation should complement ugui the most so its at least useful to see the benefits of using it for something.

    localization support isn't much of a problem .. unless unity want to add an official way of doing it with ugui.. doubt it and i'd rather see improved components and more of them,
     
  17. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Where ever you set the base level for 'core' features, the asset store will always be seen as 'filling the gaps'.

    I don't disagree with your general point. I just don't think that Unity can ever get to a level where there isn't something on the asset store that could be engine tech.
     
  18. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,204
    You have to keep in mind that the average application almost never varies in terms of UI appearance and behaviour from another application. Providing a set of common controls is thus very easy for application development.

    Games are a completely different matter. Often games will have completely different UI behaviours in addition to completely different appearances. What may have worked for one game may not work for another.

    Unity's approach isn't even unique to Unity. Unreal uses the same approach of providing the building blocks and having the developer assemble them in the manner needed.

    https://docs.unrealengine.com/latest/INT/Engine/UMG/QuickStart/3/index.html
     
    ippdev likes this.
  19. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    I am developing a standalone node based editor with unity at the moment, and even though some extra widgets/components would help, its not as limiting as i thought it would be if you have a more modern-gaming approach to your UI. Here is a wip of my editor application which is basically a direct copy of the discord ui , since i spent a lot of time on discord while developing it :D


    On the other hand, for more traditional tools winforms is just fine!
     
    zyzyx likes this.
  20. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    I would look at the MVVM assets if I were to make a big UI in Unity. Saves you a bunch of time. And its easy creating custom controls in MVVM
     
  21. makemydaypunk

    makemydaypunk

    Joined:
    Aug 12, 2017
    Posts:
    28
    If you have a good set of standard base components in any framework, it's like having a good foundation for people to build on.

    Look at any technology and as the base framework has improved so have the technologies that have been built upon it!

    It takes time to improve and build up that base and other providers will jump in to fill the gaps for profit until they are filled by the standard or a new standard e.g. the Web and Flash.

    Then again a sub optimal or stagnant standard framework can hold things back for decades e.g. javascript < wasm.

    Take the view that 'People only build simple UI interfaces with Unity' is that because that's all they can build or need or could it be because they are limited by the framework?

    If they were unlimited by the framework would they make UI's more like Hearthstone?



    After all time is money.
     
  22. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    That would take 20 minutes or less to set up. Keep windows business form guys who refuse to follow the Unity paradigm out of my code teams and i am happy. They often try to go around the Unity ways and make a mess of unreadable syntax trying to monkey wrench their methods into the component based prefab format. If I wanted a sortable ListBox I would write one based on Unity UI components and add my own bells and whistles, make it a prefab and i am good to go for the future when i need that ListBox that is sortable by any parameter. I can also hand it off the OS X guys familiar with the Unity paradigm and they can work with it easily without coming back !?!??? to the programmer for changes. JMO.
     
    theANMATOR2b likes this.
  23. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Winforms is utter S***, there is a reason MS moved on to XAML and more MVVM friendly tech.

    Unity UI is just a little bit better out of the box, but there are MVVM assets to fix that
     
    ippdev likes this.
  24. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    Adding basic controls like ListBoxes, TreeViews, and Grids doesn't in anyway destroy the Unity paradigm. The assumption that these things are intrinsic to a windows paradigm is completely false. As you may or may not know, many other languages and platforms support these types of high level controls out of the box. Obviously, if they are to be added, they would be implemented in a manner that matched the Unity paradigm.

    Now, you may be able to create these controls in 20 mins and include your own unique features, but how much of that is re-inventing the wheel? 20 mins of your time or a day of time for a beginner is still wasted time. The fact is, these concepts have been solved long ago across many platforms and development tools. I think it makes more sense to have a standard and supported set of controls that can be extended. Furthermore, I'd rather see a level of consistency across every Unity project, especially as a programmer. Why have a unique implementation of basic UI components in every project that needs them? If 80% of the time only standard ListBox control functionally is needed why fight their inclusion? Lastly, if you don't like the standard set of controls you don't have to use them. You can still waste your 20 mins and waste the time of the next programmer who looks at your code trying to decipher your logic.
     
    Last edited: Aug 27, 2017
    AndersMalmgren, Arowx and mysticfall like this.
  25. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I get exactly what I want [a custom wheel well balanced for the vehicle it supports] and nobody has to see my easy to read and well documented code as I make my components usable out of the box with exactly what i need for the project I work on. I also design them so that a unity noob can sit down on day one at the job and get to work without diving into SDK's and tech docs. That is my job. The image posted as an example is crap design. It is windoze form style. Yeccch. I thank the Lord daily the AEC folks I work for are eschewing standard grid based and forms HUD and UI configurations. Don't take it personal junior..or make it personal:)
     
  26. mysticfall

    mysticfall

    Joined:
    Aug 9, 2016
    Posts:
    649
    I'm pretty sure there were many people who said basically the same things, when such a concept as 'game engine' was first introduced :p

    I guess many people still write low level stuffs for various reasons. But those who rely on a game engine like Unity these days are not just 'juniors' that don't know any better, but also include those who decided to spend their time elsewhere - like creating contents - than reinventing all the wheels for themselves.

    And having a more comprehensive set of basic UI controls doesn't make every game look like MS Excel either. Most of modern UI toolkits provide a solid ground to build many components upon which don't necessarily share the same look & feel, and often such an API provides a clean separation of model and view of components.

    Actually, I believe this is what Unity is intending to do (rather inconsistently, though) with uGUI now and I'm pretty sure they'll be adding more components and features in future to the API. If you believe it will force every future Unity games to look like a Windows application, or make it harder for beginners to create their own UI without spending much time with SDK and documents, probably you might as well argue people shouldn't use uGUI at all.
     
    AndersMalmgren likes this.
  27. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Grids are a pain with unity vanilla, and most game do have grids, f or example our ingame server browser.
     
  28. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I do not await Unity to develop ANYTHING for me as experience since 2010 says just go..they will catch up..maybe... I write and design it myself if it is not in the current toolkit. Just call me an unentitled country boy who is used to hauling himself up by his own britches.
     
    zombiegorilla likes this.
  29. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Traditional UI widgets beyond buttons and labels generally do not fit well the VR paradigm. I am assuming similar in AR. Unity's Editor VR is more in the realm that folks using VR in the industries i develop for [AEC] want to see.
     
    frosted likes this.
  30. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    Last I looked many successful rpg games use windowed forms, Listboxes, grids, etc. (WoW, Pillars of Eternity, CK2, etc) It could be argued that gamers have come to expect such things. You might not like that style of UI design,but that doesn't really mater, because those games need them. They manage an enormous amount of data (often databases full of it) that can't be conveyed and manipulated adequately with fancy Candy Crush styled UI trinkets and particle effects.


    The point I'm making is that you might be able to do a perfect job creating components and sophisticated UI for your team, but many game devs and end users just want basic UI functionally out of the box that gets the job done. In fact, a minimalist UI design is often best. If you want more than that, you're always free to create custom UI components for your game.

    As for VR, we probably need a set of standard UI controls for that too.


    Here, let me post an example of so called crapy "windoze form style" design. You tell me how you would present all this data with a bunch of fancy custom trinkets.



    I see Tab Controls, a Grid that is sort-able and scroll-able, a Form/Window, . yep just about all the standard UI controls that you despise.
     
    Last edited: Aug 28, 2017
  31. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    oh... I found something on the asset store that might be really upsetting to some.

    "ListView for Unity UI is largely code-compatible with the Windows Forms ListView class, meaning you're up and running quickly thanks to the familiar and streamlined interface. "

    https://www.assetstore.unity3d.com/en/#!/content/21430

    For documentation... you are pointed to the MSDN listview control.
     
  32. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853

    What a mess. I write interfaces for very complex real world engineering data that convey way more in way less..and the engineers directing it hate grids. And they take up minimal space so the engineers can review the model. That UI takes up over 40% of the screen. I look at it and have minor clues as to what it is for. A non engineer can open the apps I work on and immediately figure out what is going on and what buttons do. If they can't it is reworked to achieve one click accessibility to any part of the program in a totally intuitive manner. They have enough of the windoze form routine in every other area of their profession and want something much more usable for the interactive 3D and VR/AR presentation, studying, interpretation and organizing of data. BTW. I could whip together all that UI you used as an example as prefabs in a hour or two. Why don't you do such?
     
  33. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Don't see anything wrong with that UI, looks clean, usable and styled appropriately for the games theme.

    And alot of what you've said is talk though, stick up a screenshot of the UI's and then we can judge it. I don't mind the winform stuff at least it forced a consistency with the windows user theme. I mean that is before Winblow8 where stylish GUI interfaces went out the F***ing window for square S*** interfaces and flat colors and WPF garbage took hold.
     
    Teila likes this.
  34. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    I just created a Tab menu, it took 1 hour, and its very basic
     
  35. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    Apparently, he could re-create the entire UI for CK2 in the same amount of time.
     
  36. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    229
    Considering that game received several nominations and awards... I'm not seeing the problem either.

    I'd also like to see his award winning UIs, but then again when you have a Unity UI prodigy on your team who's also a Time lord....
     
  37. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I could not care less about what awards some game won. I am not a gamer. The whole shebang reminds me of when everybody and their brother wanted to be metal guitarists in the 80's. Most of them sheer unadulterated poseurs with no talent. The industry I do work for is worth over one trillion a year. I think the UI paradigm I am using is going to be in alot more hands, including the Chinese government and the world largest architecture firm with 1000 offices, than some strategy diablo clone. The argument here is not about that. It is about using windoze forms crapola in games and making the Unity staff create the widgets instead of YOU putting the time in to get what you need.
     
  38. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Give me four hours and I will have every widget needed coded and ready for drag and drop grfx and hooking up to whatever functions drive it. No joke junior. I got 20+ years in this type of work and logic structuring.
     
  39. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Hold on a minute and I will post my tax returns too.. Heh../s
     
  40. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    This thread unfortunately is turning into a personal ego warzone :(
    OP simply asked if unity should include in their ui library some extra widgets that have been included in other ui libraries for a long time. Posters on the other side instead of sharing their experience and tips on how to help op, just hammer on other people's opinions, software preferences and their work.

     
    AcidArrow likes this.
  41. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Someone wanted an application built for the cutting edge of digital creation to spend resources to create a 20+ year old business forms paradigm [when there is an open source repo to leech code from] for yet another entitled gamester instead of said gamester spending an evening or two of his time to alleviate his personal issue..or spending a few bucks at the Asset Store. I am being cantakerous but many youngsters these days have no frikkin' initiative. Most of them would sit in the woods naked awaiting lightning to strike a cow so they could get a bite to eat. Back in my day I had to walk 5 miles uphill in both directions through rain and sleet to buy a nickel bag:) The walk back was always nicer.
     
    pointcache likes this.
  42. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I like the Layout components Unity comes with out of the box. I have a few dozen tricks to turn them into all kinds of widgetry. Most of what the OP wants can be made with what Unity gives you out of the box in a fairly rapid, efficient and logical manner. And, once you create it you can configure it or add as many bells and whistles as you want, need, desire or foresee in future versions of the framework you are developing.
     
  43. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Anybody who didn't mine his own ore and build his own chip factory and just waiting on someone to build on a computer for him is entitle, youth is lost today
    /s
     
  44. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Have you tried any other modern UIs? Like XAML, or HTML possibly with MVVM tools like Knockout or MVC like Angular 4?
     
  45. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    When I was doing html between 1994 and 2000 they did not have much. When i wrote in Flex and AS 1,2 & 3 I would make components and use XML to load the UI's and images, text etc to blank canvases and make very complex catalog, HUD and other non-website based apps with it. With Unity I use the tools they have and if you dlve into mesh colliders and 3D meshes you can literally do about anything you can dream up for interactivity. Awaiting a toolset to be ported has never been my M.O.

    The approach I am to be taking currently with this huge AEC visualization and project management is that the UI is not a flat overlay and is an integral 3D part of the entire scene model and SMART data as though a series of intelligent contextualized objects pop up in various configs based on what the object is, what it does, what you intend to do with it, where it is, where it came from, how it got there, when it did, why it did, who put it there, how long did that take to install, what did it cost, who manufactured it, what is it's SKU etc. . Try wrapping windoze forms down curves, around spheres and the whole shebang becomes rather useless. I was told the old windoze form method ended up with a literal truckload of documentation at the end of a medium sized project and that it was a tedious nightmare to search through tables and tables of textual data. So these engineers are leveraging interactive 3D and VR to replace the old ways and they want nothing more than two clicks away and are often unhappy with two and will figure a method for one click access. I think they know what they are up to as they created the SMART Revit tech and original app software.
     
  46. pointcache

    pointcache

    Joined:
    Sep 22, 2012
    Posts:
    579
    :D kekd

    Yeah it's like you have all the tools in UGUI to create whatever the hell you need lol.
    bro

     
  47. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Looking at these node editors I realize i have to write a runtime line renderer that draw single pixel antialiased lines and curves. I know it can be done in the editor. What about runtime. Do you folks doing the node graphs have a clue on runtime lines? I need to add a flexible bells and whistles line rendering component to my arsenal.
     
  48. pointcache

    pointcache

    Joined:
    Sep 22, 2012
    Posts:
    579
    just use line renderer with mipmapped gradient texture. will look antialiased. On mine however im using Vectrocity (it keeps the pixelsize of the lines) with the gradient as texture
     
  49. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    The thing is the vanilla UI is very barebone, I wouldn't use it for anything but very simple UI's. Modern UI libraries have so much great tools to help create maintainable UI's. I hope Unity will go MVVM out of the box. Until then there are tools for it on the store.

    If you want to see a MVVM UI in action you can check out my open source desktop app here, it uses XAML with MVVM

    https://github.com/AndersMalmgren/FreePIE/tree/master/FreePIE.GUI

    It uses convention over configuration which is a awsome way of databinding views. If you have a dropdown named customers and a IEnumerable named the same on the model it will understand that it should bind that list to the dropdown. If the model has a propery selectedCustom it will understand that it should bind that property to the select event of the dropdown
     
  50. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    @ippdev If I can recall correctly you have had problems with finding and combining Unity asset store tools to build the game/app you wanted. I think you were doing a scenic motorcycle ride game/app?

    Would there be less chance of asset store solution disparity if Unity's feature set aimed to provide more basic features that the asset store community could build upon.

    For instance let's say I want to make something like Hearthstone, so I go shopping for particle fx, cards, UI artwork in the style I want and sfx. What are the chances of the card system matching and working well with the UI artwork, or the lack of a in IDE bezier/animation tool will probably mean I have to try and use the card systems bespoke animations and hook the UI elements onto the cards.

    Or do I go out and purchase a bespoke bezier line animation solution and throw away the card systems animations, which is tied into the card frameworks api.

    At this theoretical point I am re-writing and combining three or four disparate systems into a new one. In this example if Unity had an in IDE animation bevelled system and tools that the card system could have used and I could then more easily hook the UI and particle systems into it would have been a breeze to pull these things together.

    That's what I think this topic is referring too could Unity's base features be improved to provide a better common platform and base for higher level features.

    A Bezier terrain tool would allow much easier road/river and feature construction would it not?