Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Bug Uncool things in 2020.1 you might have missed

Discussion in '2020.1 Beta' started by laurentlavigne, May 13, 2020.

Thread Status:
Not open for further replies.
  1. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    enough with the positivity
    dump all the annoyings things that you've tripped on
    do it yesterday!
     
  2. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    this is uncool
    upload_2020-5-13_15-2-53.png
     
  3. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    Talking of uncool, it's not cool to not go with the guidelines set for this subforum:
     
  4. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    other uncool thing:
    upload_2020-5-17_15-8-37.png
    instead of
    upload_2020-5-17_15-8-49.png
    who thought icons + pull down menu (that eats clicks) is better than icons?
    not good
     
  5. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    Terrain tooling change happened way before 2020 cycle though..

    I do agree it's not good change (I've ranted about it last year myself).
     
    laurentlavigne likes this.
  6. Awarisu

    Awarisu

    Joined:
    May 6, 2019
    Posts:
    215
    My personal pet peeve with the new UI that I reported during 2019.3 beta that hasn't been ignored by Unity yet this month:

    upload_2020-5-21_16-18-40.png

    Directional Mode and Lightmap Parameters are lists. You click anywhere on them to change their value. Generate Lighting is a button AND a menu combined together. You click on 90% of it to generate lighting and you click on the rightmost 10% around the triangle to select alternative operations. We know this, because we've used older versions of Unity where there was a nice vertical line separating the two that clearly communicated that this was in fact two things. If you're a new user who hasn't seen the good UI, only the new one, you'll have no idea. The only visual difference between them is how the text is aligned. Hands up if centered text communicates "this is a button-plus-menu combo widget" to you.
     
  7. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,281
    laurentlavigne likes this.
  8. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    Yes wildcard when searching for anything in any search field.
    Quicksearch has a completely different usage profile and showing which categories are bring search is confusing to the eye "oh there are hits... nope it's just the categories"
    upload_2020-5-21_11-0-52.png

    I was gonna say "the Fonz is cool and he doesn't follow the rules when he taps that jukebox", but yeah you're right it's a messy thread now, which is uncool, I created it more as a dumpster for all things cool for people to check out but off course I couldn't keep my mouth shut and had to balance it with its counterpoint :D Hipo, if you want to lock this thread, I won't beat you up with your "I love Cats" beer mug.

    You lost me here buddy, better show the before and after.
     
  9. Awarisu

    Awarisu

    Joined:
    May 6, 2019
    Posts:
    215
    Last edited: May 22, 2020
  10. JoNax97

    JoNax97

    Joined:
    Feb 4, 2016
    Posts:
    611
    Yeah the single down triangle should be consistent (both are drop-downs in the end) but the separator needs to return
     
  11. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    438
    Unity creating unwanted lightmapping settings file all over the place (we don't use the lightmapper at all in our project so it is just spam.

    My solution:

    Code (CSharp):
    1. [InitializeOnLoad]
    2. public static class EditorHelper
    3. {
    4.     static EditorHelper()
    5.     {
    6.         EditorSceneManager.sceneOpened -= OnSceneOpened;
    7.         EditorSceneManager.sceneOpened += OnSceneOpened;
    8.     }
    9.  
    10.     private static void OnSceneOpened(Scene scene, OpenSceneMode mode)
    11.     {
    12.         Scene activeScene = SceneManager.GetActiveScene();
    13.         if (activeScene != scene)
    14.             SceneManager.SetActiveScene(scene);
    15.  
    16.         if (Lightmapping.TryGetLightingSettings(out _) == true)
    17.         {
    18.             Debug.Log($"Clearing lighting settings for scene: {scene.name}");
    19.             Lightmapping.lightingSettings = null;
    20.             EditorSceneManager.MarkSceneDirty(scene);
    21.         }
    22.  
    23.         if (activeScene != scene)
    24.             SceneManager.SetActiveScene(activeScene);
    25.     }
    26. }
    The fact that I have to change the active scene like that is Uncool in itself.
    If you make a new API in a new Unity version, try to make it not suck. We have enough old bad API
     
  12. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    Hi!

    I'm the one who made this and will explain why I did it this way:
    So we wanted to move out any lighting settings to a separate file, which meant that you could use the same settings for multiple scenes, and make multi-scene baking easier.

    When upgrading an old project, we needed to make sure all these settings were transferred to the new system. We can't really tell the difference between:
    A: This user made super custom lighting settings and don't wanna loose them.
    B: This user has never really cared about lighting, and the settings are just whatever was default in whatever version.

    I tried making some logic to check if the current scene settings were the same as the default for 20.1, but it would have been a nightmare to go back further than that (hope you understand). And this logic is being removed soon anyway since we have introduced so many new settings etc. We are just changing way too much, and have no idea from which version the user upgraded from.

    We are changing it a bit so that the new 3d template scene is not creating an LSA, but that is as far as I can take it. It will be a little dirty to upgrade, and some files to be removed, but the alternative would have been much worse (that people lost all settings basically).

    As for the API: What about it sucks? I don't see this as an issue with the API (which in your example just allows you to check the LSA and set it), and for people who do a lot of light baking, it will help them.

    Feedback is appreciated, but please let me know what you would have liked to see instead.
     
    Last edited: May 28, 2020
  13. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,333
    Some proper way to tell Unity that "we do not use light mapping in this project at all".

    We don't lightmap in our project either, and there's quite a few infuriating bugs that comes out of that. Here's a fun one - since we don't lightmap, some of our models doesn't have normals. If we run Unit tests using Unity's test runner, we get thousands and thousands of warning messages about meshes lacking normals for every. single. test. This means that tests takes dozens of seconds each since printing all of those warnings to the console is so slow.

    This means that a side effect of running a unit test is that every single mesh in the open scene(s) is checked for proper normals. The reason this happens is that as a part of the unit test pipeline, Unity adds a new scene and sets it active, so game objects created during the test gets created there, and can be cleaned up properly. But since that scene is active, and we're not in play mode, it starts doing lightmapping stuff.

    Which is a bug that never got through QA and, like... sigh? We have to close our scenes in order to run unit tests, because the light mapping gets in the way.

    This is of course the unit test implementation being stupid and bad, but if there was a global way to just remove all traces of light mapping from the engine, you could actually know that it wouldn't tank the editor performance for users not using it.


    So as I said, I don't use lightmapping much, so I haven't seen how much of an actual pain it is, but it seems like the Lighmapper API requires you to set the active scene to get hold of the LSA. That seems silly - if you're writing a tool that wants to get the light settings from one scene and apply it to another scene, you have to do a bunch of scene switching. I'd suggest adding overloads and methods to the API so you can get all the data from any scene, not just the active one.
     
  14. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    1,035
    I second this. There are too many advanced features that are on by default on Unity, if they are advanced they should be turned off by default and not on.
    I lost count of how much time I lost tracking down the materials that are created with the Standard shader by default on a Android target, is the standard shader really the most common shader on mobile? I find it hard to believe.
    A simple setting for changing the default shader should have come before even introducing this behaviour, cause the standard shader takes forever to compile every time I upgrade Unity and if you leave accidentally some object with it, you will see huge frame drop on low end devices.
     
    phobos2077 and goncalo09 like this.
  15. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    Ok, very good points!

    As for the applying a LSA on a non active scene, I hear ya. It is something I will implement, but we currently don't really have those hooks yet. We for example don't have an inspector for the scene, which will need to be created. I also have a task to expose all scene in the Lighting Explorer and allow you to multi-change the LSA there. I'm currently the only me working on these things, so it sometimes have to take the backseat for bugs etc. I'm hoping to potentially backport it to 20.2 once it's ready.

    As for the ability to turn off all lighting, I will look into it :)

    Thanks!
     
  16. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,333
    You probably wrote the wrong thing there - but just to make sure that we're not talking past each other - you meant "all lightmapping", not "all lighting", right?

    Because we for sure use realtime lights. We're not talking about us rolling our own lighting solution here, just that we don't have the time/need to deal with lightmaps.
     
  17. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    Ah yes, sure! In the newer versions of Unity, we kind of trying to do this. The scene has a "null" lighting settings, and we no longer have Auto as default. But I will look into the point you made about normals, since that is just a bit silly :)

    Thanks!
     
    _met44, mahdi_jeddi and Baste like this.
  18. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    655
    There is a place in hell for whoever thought this was a good idea and refuses to revert it after users complain about it.
     
  19. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    another uncool thing about the new terrain:
    upload_2020-5-29_14-44-56.png
    upload_2020-5-29_14-44-29.png
    so yeah good luck painting terrain to match your tree's position

    You made my day.

    I think some folks in the UI team have no production experience so they go for certain academic ideas. The positive aspect though is that it was recognized as a regression: https://issuetracker.unity3d.com/is...l-and-blocking-requiring-two-clicks-to-switch
    VOTE NOW!
     
    Last edited: May 29, 2020
  20. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    655
    It doesn't event make sense academically. Drop down menus with text are only good for textual things like names. Everything that can be identified with an icon should be a button with an icon.

    I agree, some people at Unity lack the production experience. Take the new UI for example with it's lack of colors. Next time they'll remove the icons.

    What bothers me even more is that, few years ago, I asked for better icon differentiation between 3Dmodels and prefabs on the old UI because, it created confusion for beginners and students. Now it's even worse.

    Same for the package manager. That was okay with an "update" icon easily identifiable.


    then still no colors but a chance for similar squared icons requiring more attention from the users. Why?


    2020 is less worse but still confusing. "Preview" doesn't need to be orange, but update icon should to pop up. Also, why does it takes more space with two lines?


    Just make it simple like this.
    package manager.gif
     
    dadude123, protopop and QFSW like this.
  21. Awarisu

    Awarisu

    Joined:
    May 6, 2019
    Posts:
    215
    Look at that in the light skin. It's even worse, the contrast is less between the two shades of gray that's on it.
     
  22. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    655
    That's one of the reasons I'm strongly opposed to the light skin.
     
  23. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    This is very good design.
     
    joshcamas, QFSW, Sylmerria and 3 others like this.
  24. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,325
    This is not very good design
    upload_2020-5-31_19-22-15.png
    see how the dull orange sound icons blend in with the gray
    upload_2020-5-31_19-23-7.png
    This was far better
    Plus the light theme is now far more lighter therefore aggressive on the eye.
     
  25. Awarisu

    Awarisu

    Joined:
    May 6, 2019
    Posts:
    215
    Of course it was better but it's not trendy. There are certain priorities in modern UX design and usability is not popular these days.
     
  26. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    655
    I totally agree. These new icons break a lot of rules about icon readability. I opened a thread asking for an option to work with the good icons: https://forum.unity.com/threads/need-an-option-to-use-the-old-ui-icons.901952/

    I invite anybody who don't like the new icons to participate on it.
     
    Awarisu likes this.
  27. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    655
    Marketing people should ask themselves how long the users who like trendy icons over functionality are going to stay in business.
     
  28. Hyp-X

    Hyp-X

    Joined:
    Jun 24, 2015
    Posts:
    438
    API that has implicit parameters in a global state somewhere are bad.

    You should have an API to set/get lightingSettings for a scene, NOT the active scene.
    Ever since Unity introduced multiple scenes you should assume people use it! (I know we do use it heaily.)

    The simplest would be having a lightingSettings property in Scene. Then Lightmapping.lightingSettings would become SceneManager.GetActiveScene().lightingSettings which is longer but now there would be an added benefit to be able get/set this for any open scene.

    If you want to put it in the UnityEditor namespace, than I guess you would need a GetLightingSettings / SetLightingSettings that accepts the Scene as a parameter somewhere (eg. in Lightmapping)
     
    ImpossibleRobert likes this.
  29. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    Hi, just letting you know that I have added 3 new API's:
    Lightmapping.GetLightingSettingsForScene and Lightmapping.SetLightingSettingsForScene(s). Hopefully I will manage to land them before the 20.2 cutoff :)
     
    joshcamas, Hyp-X, phobos2077 and 2 others like this.
  30. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    Why the "ForScene" suffix? If you pass a scene to these methods, it implies it's for that scene, I would argue.
     
    goncalo-vasconcelos and JoNax97 like this.
  31. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,333
    I think it's fine that it's explicit about what it is. It'll also be easier to find for eg. google searches ("light settings scene" will give a hit)
     
  32. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    So the reason is that the overload doesn't work with a setup that would look like this:

    SetLightingSettings(scene, lsa)
    SetLightingSettings(scene[], lsa)

    C# allows overloads, but not with types that aren't fully separated. For example, if you called "SetLightingSettings(null, lsa)", which one would be called? So this is the reason I wanted to be explicit and allow you to pass in 1 or multiple scenes.

    Hope that makes sense, cheers :)
     
  33. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    Is passing null a valid use case? To what scene would the lighting then assigned to?
     
  34. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,333
    Having the overloads would work, you'd just get an "ambigous reference" compile time error if you tried to pass the literal null to the method.

    So if passing null to it has a semantic meaning, then you have to have different names, but it probably shouldn't have!
     
  35. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    With our current bindings system, there's a no go. Hope it's not too much trouble :)
     
    Baste likes this.
  36. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    The fix will be in 20.2 :) Thanks guys for the feedback!
     
    ROBYER1 likes this.
  37. JenniferNordwall

    JenniferNordwall

    Unity Technologies

    Joined:
    Sep 19, 2016
    Posts:
    160
    That would be a surprise :)
     
  38. print_helloworld

    print_helloworld

    Joined:
    Nov 14, 2016
    Posts:
    231
    Cant wait for an nre, my favourite
     
  39. Rich_A

    Rich_A

    Joined:
    Nov 22, 2016
    Posts:
    338
    PostProcessingStack V2 On and Off buttons do the same thing. I have no idea if an effect is on or not.
     
  40. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    If you run URP or HDRP, PPv2 isn't used by default. For URP 7.x you can manually enable it but otherwise it will just use URPs own internal PP. HDRP has had own PP since 2019.1.
     
    LeonhardP likes this.
  41. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    3,135
    Since the lighting discussion has been resolved, I will go ahead and lock this thread. @rz_0lento pointed out earlier why:
     
Thread Status:
Not open for further replies.