Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more..
    Dismiss Notice
  3. Dismiss Notice

General Feature request

Discussion in 'Editor & General Support' started by lubba64_unity, Jan 13, 2021.

  1. lubba64_unity

    lubba64_unity

    Joined:
    Sep 16, 2020
    Posts:
    9
    The purpose of this post is just so I can get the little annoyances that I find myself encountering with unity related to missing or poorly supported features that I really wish were dealt with, due to how annoying and frustrating its made my time with the engine. overall I'd say its a good engine but these tiny imperfections really sour my work experience.

    #1: No support for multidimensional arrays out of the box in the inspector. (array that stores arrays e.t.c.)
    Seriously? This isn't a default feature? I have been routinely disappointed by this, and frustrated with the hacky workarounds that I have had to come up with to be able to have my glorious multidimensional arrays. these multi dimensional arrays and lists are common enough (at least in my workflow), that its impressive to me that there isn't built in support for serializing these datatypes. all you have to do is add a dropdown for the first list, and then populate that dropdown with more dropdowns for these lists.

    #2: Property drawers don't give you a proper reference to the class that you are modifying the UI of.
    lets say I have a class called "loot" that stores an item, the minimum and maximum amount, and a chance that it will be dropped (for loot tables etc.) I want my property drawer to automatically clamp the amount between a minimum and maximum allowed value. this is from 0 - the max stack amount of that item. therefore, to be able to properly clamp this value, I have to be able to get a reference to the item class contained within the loot class of the property that I'm displaying, which right now isn't supported. this means that I have to stay with the default, crumby UI for custom classes because I cannot do any logic inside the property drawer whatsoever. also it would be nice if I could have a visual editor for property drawers and custom inspectors.

    #3: Cannot regenerate the custom physics shape of an object at runtime.
    lets say that I attach a pollygoncollider2d to an object. at runtime, that objects sprite renderer changes to a random sprite renderer. I need to set the polygon collider's shape to the custom physics shape of the current sprite automatically. this scenario isn't allowed, and is unsupported. consequently, there is a reset collider button on the component. why cant this be called DYNAMICALLY OR WITH CODE????? seriously, its SO EASY just to make a public function that I can call or a Boolean that automates that process.

    #4: The built in 2d lighting only works for side scrollers.
    the built in 2d lighting for unity doesn't work well with top down games, therefore I recommend getting the smart lighting plugin off the asset store. its much better.

    #5: The built in animation system isn't that great for 2d games.
    if you are trying to have a multi-segmented character made of sprites with synced animations, build your own system. it will be far easier.

    this is most of it, however these things alone have cost me probably around 30-50 hours of work. i have only made stuff in 2d, and I'm aware that it's not the most well supported, but that doesn't mean that i can't still have issues with the stuff that's in place.
     
  2. Madgvox

    Madgvox

    Joined:
    Apr 13, 2014
    Posts:
    1,315
    #1 & #2 can both be resolved via the Odin Inspector asset, which is an extensive inspector overhaul.

    #2 can actually be resolved using the default property drawer however: SerializedProperty contains a serializedObject field, from which you can "zoom out" and introspect into other members of the serialized class. Alternatively, assuming Loot is not a component itself you could extend PropertyDrawer for the Loot class as a whole and place the logic there. If Loot is a component then you'd want to extend Editor and create custom component UI for it there.
     
  3. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
  4. Madgvox

    Madgvox

    Joined:
    Apr 13, 2014
    Posts:
    1,315
    I'm guessing that would regenerate the Composite's geometry based on the underlying PolygonCollider's existing geometry, not cause the PolygonCollider to regenerate its geometry.
     
    Joe-Censored likes this.
  5. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Yeah that would be my guess too, but I've been pleasantly surprised before by unexpectedly helpful Unity behavior and it wouldn't take long to give it a try.
     
    Madgvox likes this.
  6. lubba64_unity

    lubba64_unity

    Joined:
    Sep 16, 2020
    Posts:
    9
    thanks for this! I will have to check this out, sounds great.


    haven't tried this, however It certainly would be easier to not workaround it using a composite collider, as with most of the things in this thread, where there are workarounds out there but it would be much easier to just have these things taken care of by default.

    oh and also add not having an option for the blend tree animation controller to only blend certain parameters. say I want the sprite renderer flip property to not be blended and just derive from the closest animation in the tree. I have found a workaround for this but again, needs to be a default feature at some point.