Search Unity

  1. Unity 2020.1 has been released.
    Dismiss Notice
  2. We are looking for feedback on the experimental Unity Safe Mode which is aiming to help you resolve compilation errors faster during project startup.
    Dismiss Notice
  3. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Out of the box UI features

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

  1. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    I was seeking methods to get the terrains performing at VR framerate levels. I finally found it after much experimentation with various packages and my own ingenuity which took the framerate from under 70fps to over 1000+fps with 10's of thousands of trees in the viewport at any given time.. UI is totally different. I would never buy someones artworks or solutions for the most part. I would just put together exactly what i needed which is always variant from project to project. For what i am doing currently there is nothing on the Asset Store even remotely fulfilling even a niche need or are primitive compared to what i already have built into a library. I can make a use for Vectrosity but do not need it. Frankly, for the business forms paradigm of grids based HUD/UI Unity provides every building block needed to create the entire spectrum.
     
  2. makemydaypunk

    makemydaypunk

    Joined:
    Aug 12, 2017
    Posts:
    28
    If your right then maybe it's not the level of features the basic toolset has that people are having problems with so much as how easy it is to pull together what they need?

    Would a few more default prefabs and templates be enough to allow most people to get a sorted list or grid UI working out of the box?
     
  3. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    I couldn't see any images of how it sets up a UI for display but I was certainly interested in the use of Input devices as i have some inventions for VR and light field cameras I want to hook into Unity. I generally create UI objects that are fed lists, understand their context and auto-layout and configure themselves. Trying to do this for all the categories of real world objects is a challenge as under the hood it has to be procedural and heuristically searchable and linkable in a similar manner as to how we actually perceive and apply importance to any given set of objects when in a given mode of work or thought or experiencing. Every ship, plane, building. vehicle, gallon of gas, pound of sugar, ton of HMS 101, ingot of navy bronze has a UUID that is unique and can be tracked. How does all this fit together and relate to each other and what methodologies do you use to display this data in the most comprehensible manner without using ledger styled referencing is the task I have had set before me by the engineers who helped devise this system.
     
  4. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    Grid UI is very simple. Have a parent gameObject with a GridLayout component on it. Set the cell size and spacing/padding as well as flexible or fixed constraints. Drop children underneath. Want to organize the alphabetically as a sorted list. Sort them by name and rearrange their transforms in that sequence under the parent. Turn them off and on and they auto-layout themselves to accommodate the active gameObjects. You can even use embedded GridLayout components so you can set up a multi-component button, text, inputField, slider, checkbox component that is repeated in a parent GridLayout, which can be embedded in a further parent GridLayout. Make the controller have color pickers and drag and drop Inspector slots to alter grfx and a couple of public floats for controlling cell size, padding and whatever else cranks your bells and whistles.

    I think what was stated earlier in the threads holds true. Games and interactive realtime 3D sims are very different from project to project in how they need representation in the UI to manipulate and explore the scene model. Hence you give folks the lego blocks that allow that creative or structural flexibility instead of shunting them down the one-size-fits-all-whether-you-bloody-well-like-it-or-not paradigm.
     
    theANMATOR2b and zombiegorilla like this.
  5. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,406
    Its for complex tasks like this that MVVM shines the most, its virtually impossible to create a maintainable solution without a distinct line drawn between presentation and domain logic.
     
  6. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    I went and looked up MVVM and MVC. Seems I was doing it already in building this framework. I have about 80 unique data driven components so far that can lay themselves out based on type in grid cube volumes, spirals, circles, orbitals, valence shells, clusters, ledgers, geocoordinates on a globe or 2D map, with all kinds of sort methods, display styles and differentiator functions for rapid visual distinguishing of data variable magnitudes, similarities, sequences, clusters, ranges etc. There is also a whole contextual radial menu system for working with engineering, architectural and construction models to ensure the entire project matches spec virtually and in the real world down to the last bolt and light switch. None of the HUD/UI is allowed to have any text on any button...some of the sliders, readouts and titles..yeah..but the buttons all have to be icons so they are understood universally...which is a toughy. The bonus is I understand the entire system, it contains only code I need and it is ready for a Unity noob to sit down day one on the job and start tweaking the look for whatever client it is being configured for.
     
  7. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    189
    So you're not a gamer and yet you chose to dismiss the types of UIs that gamers in the RPG space have come to appreciate and respect. I guess your opinion on the mater stops there and it isn't completely relevant to gamers who are actually making games.

    Now, you may be arguing from an application space perspective, but I'd argue that's even more of a reason for Unity to include time saving UI components. The argument here is that YOU like to waste your time. I'm not sure why you are making that argument, but if I had to guess you're farming gold / hour. I'm reminded of those old school mainframe programmers ranting against PCs. back in the day...
     
  8. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    You are really lousy at making a cogent argument. Apparently your reading comprehension led you to your current bias and attempting to have me take a position in your imagination that is incongruent with my writing. I make custom UI widgets to do exactly what I need in context. Others pay me good money to do so and dictate how those widgets work. How is that wasting my time?

    Second on your assumption that because one does not currently game one does not have the ability or right to critique such. Hogwash and a fallacy. Maybe I don't play games because they mostly suck..and suck time and they do not pay my bills to play them. I watch my son play them for hours at a time to study how they put things together and how gameplay mechanics work. I have developed several dozen games in my freelance career and have been employed as CTO and acted as lead dev for gaming companies. I have three extensive games on my HDD awaiting completion with a total of 1000's of man hours in them.

    I saw up thread your reminiscing about some ancient computer tech and language but you are arguing for Unity to make you some toys? Did you spend the in-between time playing games or learning the craft of coding? Seems to me those intervening years should have given you the skills to knock out UI widgets yourself unless indeed you have wasted your years chasing illusions..I already gave you a clue in the GridLayout post on how to create every widget you wanted in your first screed.
     
  9. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,483
    In the time that has been spent arguing we could have presented problem UI's and solutions on how to solve them in Unity?

    Can I challenge the relevant parties to put forward UI designs/elements that are lacking in out of the box Unity and for the other parties to put forward how to solve those issues with Unity.
     
  10. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968

    NP..what is the pay rate? Surely you cannot expect me to do the work of the lazy for free? Or divulge methods that others have paid me well for and have me under NDA to not reveal.
     
  11. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,483
    I thought your argument was that it's so simple to extend the UI that we don't need new features?

    Is your argument really that you make money contracting based on the lack of features or feature gap that you have plugged with your code library?
     
  12. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    The "features" I wrote are special case. I do not consider Unity to have a feature gap as I had the total ability to write any kind of interaction I needed with the lego blocks i have been given as a base part of the UI toolset. As to how i put them together..well that is in the realm of proprietary information though for a decent days pay I can put those skills to work on any project. Isn't capitalism grand:)
     
    zombiegorilla likes this.
  13. Kev00

    Kev00

    Joined:
    Dec 6, 2016
    Posts:
    189
    You're the one who ranted against "windoze" form like design. I was simply trying to demonstrate to you that such things ARE desired by the community. Your position is clear, you think those types of UIs suck.

    You're offering your services and invoicing /hour, and that's fine, but your clients, and those of us who are trying to bring a product to market do consider that to be a waste of time.

    So first you shout "Fallacy" and then you fallaciously appeal to your own authority? Boasting about your own skills is pointless to this conversation. I realize this is a recurring theme with you, but I don't think people here care to read your resume.

    I never said you can't have a valid opinion as a non-gamer, but if all you're going to leave us with is your experience it won't mean much of anything. Obviously,
    I think you have the right to voice your opinion, but if you're going to rant against the UIs from well established games at least provide an argument. Offering us details about your experience isn't an argument. Suggesting that people who desire time saving UI controls are inexperienced or lazy is also not an argument.

    So attack the messenger? Attempting to belittle my experience and coding ability isn't an argument.

    FYI, I can code these controls in the same amount of time as you can, if not faster, but that's not the point.

    Unlike you, I actually think about what is needed by the community across all levels of experience. In this case, I think it's important to consider time saving techniques and understanding common UI use cases across all types of games.

    I'm not hell bent on keeping Unity in the UI dark ages to insure a greater number of hours on my next invoice.

    so I was correct, you are gold farming / hour. That explains your opposition to having time saving controls added to the base UI system.

    It's too bad for that NDA, but surely there must be a thesis paper on these new UI concepts that you can point us to.

    Lastly, I fully support Lazy programmers.
     
    Player7 likes this.
  14. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,968
    I snipped the rest of your unmitigated BS to focus on the one cogent statement you made that wasn't worth crap in a handbasket. That is entirely the point. You can do it but won't and prefer to play the entitled card. The Unity folks who wrote the UI said basically that if you want more stuff there is an open source repo to leech from and add to. But go ahead..bust your head into that wall.
     
  15. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    Since i like playing with many game engines, made a small table with the out of the box ui stuff you get from some of them. Its just a quick list and not directly comparable, use it just to get a general idea of the state of unity's built in library:

    • Unity UGUI: Text, Image, RawImage, Mask, Effects, Button, Toggle, ToggleGroup, Slider, Scrollbar, Dropdown, InputField, Scroll View, Animation Support, Autolayout Support(Horizontal, Vertical, Grid)

    • Unity IMGUI: Label, Button , RepeatButton, TextField, TextArea, Toggle, Toolbar, SelectionGrid, Sliders, Scrollbars, ScrollView, Window, GUILayout(Areas, Horizontal, Vertical)

    • Unreal: Button, CheckBox, Image, ProgressBar, Slider, Text, TextBox, ComboBox(string), SpinBox, TextBox(Multiline), Panels(Grid, Box, ScaleBox, ScrollBox, SizeBox, GridPanel, WrapBox), Primitives(Circular Throbbler, EditableText, ...), Effects.

    • Gamemaker: I can't find any info on built in widgets beside a DrawGui event that you should use to paint your gui, (let me know to edit, if you know something).

    • Libgdx scene2d-ui: Layout(Table, Container, Stack, ScrollPane, SplitPane, Tree, Vert-Hor Group), Widgets(Label, Image, Button, TextButton, ImageButton, CheckBox, ButtonGroup, TextField, TextArea, List, SelectBox, ProgressBar, Slider, Window, Touchpad, Dialog)

    • Cocos2d: Layout(Panel, ScrollView, ListView, PageView) Widgets(TextButton, CheckBox, Slider, LoadingBar, TextField)

    • Monogame: No UI library built in.There are 2 gui libraries in Monogame.Extended and several opensource projects.

    • Love2d: No UI library built in. There are some opensource GUI projects, mostly wrapping external gui libraries.

    I think that what you get from unity's ugui is comparable to what you can find around. From UI-extensions pack you get some additional helpful stuff like windows, reorderable lists and snappable scroll views. Would some more built in widgets be cool? Of course, but i think the base functionality is solid enough to help you design pretty much anything without much effort. And if you do make something you can always upload it somewhere to help the community. For example this file browser dialog shared on github saved me a lot of time :)
     

    Attached Files:

    Last edited: Sep 2, 2017
    theANMATOR2b and ippdev like this.
unityunity