Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Improved prefabs workflow critique

Discussion in 'Prefabs' started by Oshigawa, Sep 25, 2018.

  1. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    250
    Hello,

    i started working with improved prefabs as soon as 2018.2.X Improved Prefabs preview came out, and continued with beta straight away, so i think i have enough hours in it to post some observations.

    I'm not really a power user since i'm using Unity for mere three years, but i'm not a rookie either so speed of the workflow is quite important to me, and that's where my objection is.

    Removing the inspector from prefabs and putting the open prefab button brings two more clicks (open prefab and save, auto save slows things to death) to the workflow, which is a lot when you're dealing with many prefabs.

    While the separate prefab workspace is neat for initial visual configuration od the prefab, i usually don't find the need to use it ever again after the first time and most of the dealings with the prefab afterwards consist of fiddling with it via inspector, and having to enter the prefab mode every time just to see if that's the prefab i wanted to use and then edit the inspector values is time consuming.

    Also, ability to bulk edit the common prefab components in the project view has been taken away from us, so now we have to drag every nested prefab into the scene one by one, select them all then edit the components in bulk. Not a function i use often, but still i believe it's a step back from the usual.

    As someone said, the whole thing seems a bit over engineered. Deeper prefab levels are something we all waited for, but i'm not sure the whole prefab workflow is the thing we needed.
     
    interpol_kun, RakNet, id0 and 15 others like this.
  2. Laurens-Paladin-Studios

    Laurens-Paladin-Studios

    Joined:
    Apr 25, 2015
    Posts:
    49
    I agree that as soon as we started working with the new workflow this was the first thing that struck me as being very tedious... Don't get me wrong, I love the whole new system accept that little part.

    Creating variants from a list of imported models and only needing to make them static took me quite some time having to open all of the individual variants and checking the static checkbox along with some additional lighting settings.
     
    RAM804, Artaani and Oshigawa like this.
  3. noanoa

    noanoa

    Joined:
    Apr 17, 2014
    Posts:
    218
    I also agree...I might make use of the new prefab workflow in the future but currently in my on-going project, modifying prefabs got so tedious...I hope the prefab interface and the workflow get improved in the course of beta. For me, there are 3 crucial things missing in the new system.

    1. As the op mentioned, please bring back the prefab inspector when selecting prefabs in project window. You need 3 clicks just to see what components the prefab has and the focus is lost in the project window after these clicking.

    2. We have big "Overrides" button on the inspector now but please consider placing "Apply" button next to it even if it's as small as 8x8 pixels, less clicking.

    3. An ability to edit prefabs without opening the prefab window....

    Overall, I'm missing the old prefab workflow a lot. I applogize if it sounded like a rant but it's just my feedback.
     
    RAM804, Ashsun, BUDU_KRATOK and 3 others like this.
  4. noanoa

    noanoa

    Joined:
    Apr 17, 2014
    Posts:
    218
    While it's nice to be able to create nestable prefabs, (I think) we don't need every prefab to be nestable. Most of the cases, I just throw gameobjects to Resources folder so that I can instantiate them on the fly without having them always sit in the game scene. And for those "Singleton" prefabs, the old prefab workflow is much better. It would be nice if you could toggle between the old prefab and the new one. Or maybe add a component which makes a prefab work like before....which is kind of ironic though if you know what asset store devs have been doing to make prefabs nestable(for years).
     
    RAM804, Artaani and Oshigawa like this.
  5. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    250
    Another two weeks passed and i can say i'm already pissed off by having to open prefab, open prefab, open prefab, instead to access the inspector immediately.
     
  6. hunterofakara

    hunterofakara

    Joined:
    Oct 4, 2018
    Posts:
    16
    Nearest workaround I could get is a custom window to load and draw inspector controls for currently selected prefab in project view.

    Made with fairly hasty copy/paste, so it's messy and no guarantees given that it won't break something, but it might help as a starting point if someone wants to clean it up/make sure it's safe:

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEditor;
    5. using System.IO;
    6.  
    7. public class PrefabInspector : EditorWindow
    8. {
    9.  
    10.     [MenuItem("Custom/Prefab Inspector")]
    11.     public static void ShowWindow()
    12.     {
    13.         EditorWindow.GetWindow(typeof(PrefabInspector));
    14.     }
    15.  
    16.     private void OnEnable()
    17.     {
    18.         OnSelectionChange();//check selection if recompiling scripts/opening window
    19.     }
    20.  
    21.     private void OnDisable()
    22.     {
    23.         CleanupExisting();
    24.     }
    25.  
    26.     private void CleanupExisting()
    27.     {//release memory etc
    28.         if( goEditor != null )
    29.         {
    30.             DestroyImmediate(goEditor);
    31.         }
    32.         if( componentEditors != null )
    33.         {
    34.             foreach( Editor componentEditor in componentEditors )
    35.             {
    36.                 if( componentEditor != null )
    37.                 {
    38.                     DestroyImmediate(componentEditor);
    39.                 }
    40.             }
    41.             componentEditors.ClearFast();
    42.         }
    43.         if( inspectObject != null )
    44.         {
    45.             if( prefabPath != "" )
    46.             {//prefab utility save it
    47.                 PrefabUtility.SaveAsPrefabAsset(inspectObject, prefabPath);
    48.             }
    49.             PrefabUtility.UnloadPrefabContents(inspectObject);
    50.         }
    51.         prefabPath = "";
    52.         inspectObject = null;
    53.     }
    54.  
    55.     private string prefabPath = "";
    56.     private void OnSelectionChange()
    57.     {
    58.         CleanupExisting();
    59.         if( Selection.activeObject == null || !(Selection.activeObject is GameObject) )
    60.         {
    61.             return;
    62.         }
    63.         foreach( GameObject go in Selection.GetFiltered(typeof(GameObject), SelectionMode.Assets) )
    64.         {
    65.             prefabPath = AssetDatabase.GetAssetPath(go);
    66.             if( !string.IsNullOrEmpty(prefabPath) && File.Exists(prefabPath) && prefabPath.EndsWith(".prefab") )
    67.             {//selected is a prefab, ideally in project view?
    68.                 //inspectObject = go; //For a read-only viewer, uncomment this and instead comment out the line below as well as the saving/unloading code in CleanupExisting
    69.                 inspectObject = PrefabUtility.LoadPrefabContents(prefabPath); //Something like this to load, then code to save in CleanupExisting
    70.                 if( inspectObject != null )
    71.                 {
    72.  
    73.                     goEditor = Editor.CreateEditor(inspectObject);
    74.                     if( goEditor == null )
    75.                     {
    76.                         CLI.OutputLine("NullEditor...");
    77.                     }
    78.                     else
    79.                     {
    80.                         if( componentEditors == null )
    81.                         {//todo: reinit
    82.                             break;
    83.                         }
    84.                         foreach( Component c in inspectObject.GetComponents<Component>() )
    85.                         {
    86.                             if( c is UnityEngine.UI.Image )
    87.                             {
    88.                                 Editor componentEditor = Editor.CreateEditor(c as UnityEngine.UI.Image);
    89.                                 if( componentEditor != null )
    90.                                 {
    91.                                     componentEditors.Add(componentEditor);
    92.                                 }
    93.                             }
    94.                             else
    95.                             {
    96.                                 Editor componentEditor = Editor.CreateEditor(c);
    97.                                 if( componentEditor != null )
    98.                                 {
    99.                                     componentEditors.Add(componentEditor);
    100.                                 }
    101.                             }
    102.                         }
    103.                     }
    104.                     break;
    105.                 }
    106.             }
    107.         }
    108.         Repaint();//force OnGUI redraw
    109.     }
    110.  
    111.     private GameObject inspectObject;
    112.  
    113.     private Editor goEditor;
    114.     private List<Editor> componentEditors = new List<Editor>();
    115.     void OnGUI()
    116.     {
    117.         if( goEditor == null )
    118.         {
    119.             EditorGUILayout.LabelField("No prefab selected");
    120.             return;
    121.         }
    122.         else
    123.         {
    124.             goEditor.DrawHeader();
    125.            // goEditor.OnInspectorGUI(); //seems to do nothing
    126.            //goEditor.DrawDefaultInspector(); //lists just object properties with no proper format
    127.             if( componentEditors == null )
    128.             {
    129.                 return;
    130.             }
    131.             foreach( Editor componentEditor in componentEditors )
    132.             {
    133.                 componentEditor.DrawHeader();//seems to draw component icon but gameobject's name, and wider than normal.
    134.                 EditorGUILayout.LabelField("Component: " + componentEditor.target.GetType().Name); //Show component type, since DrawHeader doesn't list it.
    135.                 componentEditor.OnInspectorGUI();
    136.                 //componentEditor.DrawDefaultInspector(); //lists with no proper format
    137.             }
    138.  
    139.         }
    140.     }
    141. }
     
  7. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    250
    Thanks man, i'll give it a try.
     
  8. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,012
    @runevision: this needs to be the default behavior.
     
    ihgyug, RAM804, BUDU_KRATOK and 3 others like this.
  9. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    250
    I second that.
     
    BUDU_KRATOK and Artaani like this.
  10. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    468
    There is something I really cannot understand about Unity is that they try to make things Simple yet they don't know how it makes things inconvenient to use. Simple-to-use and Easy-to-use are NOT the same!!! Having one Global Inspector for everything makes a clean UI but it is very difficult to use. I usually have several Inspectors open just in case I have to lock and compare stuff. Unity's workflow has lots of go back-and-forth and back-and-forth yet there is not even the navigation history support. If they intended to keep the same UI for more than 10 years, they could at least make go back-and-forth easier. It's so dumb and they should feel ashamed.

    Getting rid of Prefab inspectability is another attempt to make things simpler but it works against the workflow. I'm not really sure if they have any UX guy working for Unity.

    I think having as many Custom Inspectors (toggled on-and-off and it's context locked to the window it belongs) where it makes sense are necessary and we need to bring back Prefab Inspectability.

    I described Custom Inspectors more in detail in this thread. https://forum.unity.com/threads/my-biggest-pain-points.553498/
    It can coexist with the current UI and it's not even that difficult to make it and it will save us so much time.
    Unity guy made a reply that they are looking into it but Unity often cancels projects without warnings so I don't know what's going to happen.

    I really hope someone at Unity takes a responsibility instead of relying on Asset developers to fix their problems.
    The current Unity workflow is so bad but there is very little sign of changes. Even if there is, the progress is so slow and I feel that we are lucky to have it.
     
    interpol_kun and RAM804 like this.
  11. Bigpete591

    Bigpete591

    Joined:
    May 7, 2013
    Posts:
    54
    +1

    The new prefab system is great but having to open prefabs any time you want to make a small change is very tedious. Fixing this one thing will dramatically increase the usability of the new system.
     
    RAM804, Gua, joshcamas and 3 others like this.
  12. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    250
    They could make the whole system much more efficient, but ok, it's the first iteration in beta, i hope they'll work on it. I don't like proposing solutions because that's not my job, but the workflow that i would prefer is the following:

    When i click on the prefab in project view, the inspector should open automatically to edit the prefab (the way it was before) but with the button for prefab editing mode in an isolated environment which is present now with open prefab button.

    Editing instances is fine the way it is now, with override button.

    And that's all there is. I don't see why many more people are complaining because it's a huge workflow problem, but i guess a lot of folks are still holding on to older version for projects that are still being worked on.
     
    RAM804 and Artaani like this.
  13. MatthieuPr

    MatthieuPr

    Joined:
    May 4, 2017
    Posts:
    56
    I think the main issue with the new prefab system is that it breaks away from the old system very clearly...
    Where the real issue is so far I noticed is related to all the UI tools developed to work with the old system. I have spend last couple of weeks just recreating 75-90% of our tools from scratch and the more complicated ones that were hacking around the security free old prefab system are showing the constraints of the new system.

    I do believe that the new system will be better, still few things to iron out, but the cost to switch from old to new can be very tedious... And trying to explain what crazy script you wrote as UI hack on the forum is not straight forward either.
     
    Artaani likes this.
  14. Rich_A

    Rich_A

    Joined:
    Nov 22, 2016
    Posts:
    151
    Absolutely agreed. I posted the same thing here: https://forum.unity.com/threads/how-to-preview-prefabs.583672/#post-3892366 but this thread seems to be getting more traction.

    The other problem is that you often want to open the properties of a prefab, yet still retain visibility of your currently open scene. Maybe you want to pick a colour from your scene, for example.

    I'm fine with 'Open Prefab' as a button at the top, to view the prefab individually, but the old capability to just view the prefab properties directly needs to be retained.

    'One more click' might sound minor to an engineer, but from a usability POV it is hugely detrimental to the extent that I'm delaying my move from 2017.4 LTS to 2018 partly because of this.
     
  15. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    405
    Just watched Ciro's intro talk

    I have the exact same concerns as you. In his examples of having a rock prefab it is so obvious that you want to edit it in the context of the scene, you cannot tweak scale in isolation. Besides the initial setup i dont think there is any use for entering this prefab mode, at all. Never have i thought "gee i wish the rest of the scene was not visible now".

    And not seeing the properties in the inspector is such a dealbreaker, it makes it unusable in our project. We have prefabs for different unit types, i cannot understand why you'd take away the ability to see their property at a glance, or multi edit them.

    I was looking forward to 2018.3, but i wish there would be an option to disable this new prefab workflow because its unusable and worse than what we have.
     
    Last edited: Nov 26, 2018
  16. MatthieuPr

    MatthieuPr

    Joined:
    May 4, 2017
    Posts:
    56
    I would disagree on the unusability, it just takes time to figure out the different way of thinking.

    no inspector in editor mode is clearly an UX regression, but there are some scripts out there to help and I do hope Unity will just add it asap with a patched version.

    I have not yet got to a real issue about losing multi edit (mainly cause of the inspector issue), but at the same time using nested prefabs can solve that as well... want to change the image of 15 different prefabs, well if they are nested prefabs can do that very easily or even with variants...
     
  17. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    405
    Variants are neat.

    But firstly it takes time to upgrade systems, secondly you cannot know in advance what is shared and what isnt. During iteration its tedious to variantify and devariantify things constantly.

    And mostly i just want to quickly glance at an object to see if its in order, or maybe even see the differences. With multiselect that is possible now, in the new version that is not.
     
    Artaani, Oshigawa and Rich_A like this.
  18. Rich_A

    Rich_A

    Joined:
    Nov 22, 2016
    Posts:
    151
    Looks like this functionality was officially removed, explanation here:

    https://forum.unity.com/threads/faq.536647/

    "Can we get back the ability to edit Prefabs directly in the Project Browser?
    No, this is not viable. Some technical changes were needed in the Prefabs back-end in order to be able to robustly support nesting. These changes mean that Prefabs are technically imported assets, and this in turn means that they can’t be edited directly. Prefab Mode is the new way to edit Prefab Assets. Compared to the old workflow of editing directly in the Project Browser, Prefab Mode lets you edit objects at any depth, and lets you visually see what you’re doing in the Scene View too."

    It looks like some more elaborate tools (from our own studios) will be needed to support game designers working within Unity. For example, in the past you could just click between weapon prefabs, and compare and contrast easily (eg. damage values). Now the 'open prefab' will break up that entire flow. Maybe some kind of google spreadsheets integration, with the values stored there and refreshed into the engine as required.

    Off-topic, but I think these kind of changes signal that the era of the solo developer is nearing its end. Engines are becoming more complex, Unity is becoming more like Unreal. Unless you are an exceptionally talented individual like Lucas Pope who is willing to spend 3 years on a game, the future will be Game Designer + Unity Developer (Programmer) + Artist.

    All of this is not entirely a bad thing, since its probably a better and more sustainable workflow (and hopefully I will end up in a small team anyway), just interesting to note.
     
    Last edited: Dec 9, 2018
    TJHeuvel-net likes this.
  19. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    2,012
    You can start with this https://forum.unity.com/threads/improved-prefabs-workflow-critique.560539/#post-3763303
     
  20. MatthieuPr

    MatthieuPr

    Joined:
    May 4, 2017
    Posts:
    56
    I think that it is still possible to do solo games with the help of the asset store...
    not being able to edit the damage output of a weapon on the prefab doesn't make editing all of a sudden a lot more complex... With little work you can still get that effect. you can make a scene that dynamically loads all weapons of the game and display their stats + extra calculations. From there you can save prefabs from script, create variants maybe depending on what your game needs ;)
     
  21. Mads-Nyholm

    Mads-Nyholm

    Unity Technologies

    Joined:
    Aug 19, 2013
    Posts:
    92
    FYI: We are currently investigating different options for showing the root GameObject in the Inspector for Prefab Assets.
     
    Griz, arkogelul, sandbaydev and 14 others like this.
  22. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    405
    Thats great to hear, thanks! We will probably postpone updating until this is added, because right now it just adds too much to our workflow.
     
    Last edited: Dec 13, 2018
    Rich_A, Romenics and Artaani like this.
  23. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    468
    Thanks for the consideration. It will be very important for us too.

    While you are revisiting, is it possible to have prefab editing in a separate custom window(like Mesh Preview window) instead of replacing the scene view? It's really weird that it has to work in scene view and you might want to see how the changes in the prefab affect the scene while editing. Right now to see the changes, you will have to go back and forth between each edit and it seems pretty annoying.

    While you are editing in the custom window, you can lock the prefab so that you can only save it from the custom window or there may be some better ways.

    Thanks
     
    Rich_A likes this.
  24. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    4,140
    Also I think it's time to release some educational material on the subject, why is it a bad idea to hide problems with assets in prefabs (scene editing) and why it is more beneficial having properly set up prefab-hierarchy instead of mass editing countless different prefabs.
    It seems people could use the information.
     
    Oshigawa likes this.
  25. Rich_A

    Rich_A

    Joined:
    Nov 22, 2016
    Posts:
    151

    This would be fantastic! To be able to see the changes in the normal scene view, plus a separate prefab-specific window. It would be the best of both worlds.

    I think to use Unity well, you need at least two monitors, and I'm even considering adding a third small one for the team.
     
    Oshigawa likes this.
  26. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    Please see the FAQ:
    https://forum.unity.com/threads/improved-prefabs-introduction-faq.597226/
     
  27. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    275
    Why do't you simply add an auto open prefab option for the project prefabs selection. It would do the job and it doesn't make sense to show an empty inspector window anyway.
     
    Arsonistic and Oshigawa like this.
  28. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    There are many reasons to select a Prefab without wanting to open it. You might want to duplicate or delete it, look at the visual preview, or make a Prefab Variant from it.

    However, you can open a Prefab Asset simply by double-clicking on it or pressing P.
     
    dmangames and Marc-Saubion like this.
  29. Marc-Saubion

    Marc-Saubion

    Joined:
    Jul 6, 2011
    Posts:
    275
    That's good to know, thanks. :)
     
  30. JohnnyFactor

    JohnnyFactor

    Joined:
    May 18, 2018
    Posts:
    146
    I just came here to ask, how do I edit multiple prefabs? I have a set of 50 nearly identical prefabs that I want to change one thing on the collider for. Do I really need to double-click, change the setting, then save each and every one? And what about the next thing I want to add later? I have to do it all again?
     
  31. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    This is one thing that got impacted by the new back-end design changes. When you want to edit a lot of objects, your best bet is to instantiate them all, select all the instances, multi-edit those, and choose Apply All in the Overrides dropdown. We added support for using the Overrides dropdown with multi-editing specifically to make sure this is at least possible.
     
  32. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    468
    Is this what you referring to?

    It feels like a dejavue happened ~10 years ago. In a nutshell, the question was, "why is Prefab workflow so inconvenient?" The answer was, "it is deliberately designed inconvenient so that user doesn't make mistake by accident"

    Wow! It took ~10 years to get here but it hardly changed. What a lame excuse. If a user makes a mistake, he will have to learn but Unity needs to stop this nonsense. Have you seen how UE Blueprint works? They have a custom editor, works isolated and I haven't heard user complaining making a mistake.

    You can lock prefab down when you are in prefab editing mode. If the prefab is in the scene with changes, it will display a warning that any changes to prefab will overwrite the changes in the scene. If the user doesn't want to overwrite the changes, he will first have to save the changes before going into the edit mode.

    PLEASE SUPPORT MORE CUSTOM EDITORS AND DON'T PUT EVERYTHING INTO A SINGLE WINDOW!
    I'm really sick and tired of going back and forth.
    Thanks.
     
    Rich_A, BUDU_KRATOK and Artaani like this.
  33. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,337
    I guess just making sure the root gameobject of the prefab is by default the thing shown in inspector on click will make old and new people happy (+ multi edit the root prefab)
     
    arkogelul, Arsonistic, Rich_A and 3 others like this.
  34. Anthony0506

    Anthony0506

    Joined:
    Oct 13, 2016
    Posts:
    50
    i hated nested prefabs. i used to be able to load a bunch of S*** in my scene, adjust something on the main asset and everything would update accordingly. now I have to go to every single instance of the asset to change it? and I can't disable it? who thought this was a good idea?
     
  35. Artaani

    Artaani

    Joined:
    Aug 5, 2012
    Posts:
    403
    Weird, this should work in 2018.3 as before.
    Maybe your prefabs in the scene have some overridden values?
     
  36. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    4,140
    I'm guessing the other way around. I think he has a ton of separated prefabs with the same stuff on them instead of the one prefab root with a lot of overrides (so he wouldn't use the multi-edit for the not overridden values but he would edit the value on the base prefab).
     
  37. ratking

    ratking

    Joined:
    Feb 24, 2010
    Posts:
    199
    Is there a specific reason why Unity didn't make nested prefabs an additional thing, instead of replacing a whole workflow and in some parts making it worse?
     
    Shorely, Artaani and TJHeuvel-net like this.
  38. ratking

    ratking

    Joined:
    Feb 24, 2010
    Posts:
    199
    Is there a way to CLOSE the Asset again, or do we really have to click on that tiny "<" in the Hierarchy (or the nearly as tiny, inconveniently placed "Scenes" in the Scene view) every time?
     
  39. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    In the preferences you can set up a shortcut key for "Stage > Go Back".
     
    RG_Keith and ratking like this.
  40. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    No, this was a reply to the question "is it possible to have prefab editing in a separate custom window" and I was referring to the FAQ entry

    Can we get the ability to simultaneously have a Scene view in Prefab Mode and one that shows the scene(s)?
    This is a common request and something that has been much on our minds. The functionality couldn’t make it for the initial release but we’d love to look into it for a future release.​

    With regard to the text you quoted:

    Being able to edit an entire Prefab Asset without having to instantiate it in the scene or edit an existing instance means you can avoid mistakes related to accidentally applying overrides in the scene that shouldn't have been applied. Having editing of instances and asset as separate things lets you make your changes with confidence.​

    This text is comparing Prefab Mode to editing Prefab instances, not Prefab Assets. And if you do prefer to edit via Prefab instances, you can still do that via Apply All in the overrides window and the other apply options. This is completely separate from the discussion about editing Prefab Assets.

    I'm not sure which inconvenience you're talking about here.

    With the Prefabs in 2018.3 we put the Apply All button inside the Overrides window where you can see what's overridden. This could be argued to be slightly more inconvenient but it's to avoid the kind of mistakes you mention. We've had very positive feedback about this; it has solve many of the anxieties that many people had with using Apply before.

    We also let you edit Prefabs in Prefab Mode. If you're comparing this to editing Prefabs in a separate window, then I'm not sure I understand why the current Prefab Mode is more inconvenient than that? But in any case like I quoted above, being able to open Prefab Mode in a separate window is something we would have liked to do; it was just out of scope.

    If it's about the issue with not being able to edit Prefab Assets directly in the Inspector, then the argument for that is not that it's a design decision, but that it was due to technical implementation details, like the FAQ states. And like Mads wrote in this very thread:
    This wouldn't even be needed since changes in the scene are done as overrides and are merged with changes you make to the asset. I don't know why you think it was a deliberate design decision to not allow you to have both open at the same time; please reread the FAQ again. :)
     
    Arsonistic and TJHeuvel-net like this.
  41. CrowbarSka

    CrowbarSka

    Joined:
    Dec 15, 2009
    Posts:
    139
    Just to echo and contrast some of the thoughts here...

    I've been a Unity user since 2009 and have to say I really like the new prefab workflow, having used it since 2018.3's full release. Overall, it's a really nice way to work on something in isolation and share data between similar object types. It's saved me a lot of scripting work actually, that seems to be one of the bigger benefits for me. The visual feedback for what's nested, what's a variant etc. is really clear and good.

    However I do want to +1 the point about not being able to view a prefab in the Inspector. I didn't realise how much this would be a problem until I started using it in my everyday workflow, and it trips me up every time. I understand there are technical barriers, but if you clever folks could find some kind of solution I think that would be very welcome indeed :)
     
    sandbaydev, Rich_A, Peter77 and 5 others like this.
  42. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    267
    I went back to 2018.2 because of the extra click needed to see a prefab in the inspector, I don't understand why this is necessary, can't the root of the prefab show in the inspector like it used to and then have an extra button to open the entire prefab in the hierarchy?

    Also why can't prefab instances keep their original names, if I rename a master prefab I don't want to go through all my scenes just to rename all the instances manually, the name link should never be broken unless changed manually in the scene like everything else about a prefab, I had to write a script just to add that functionality but I really don't understand why this isn't the default behavior, I'm thinking not enough people work on large scale projects to understand why this is a problem.
     
    Fronne likes this.
  43. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    468
    Some basic workflow is so horrible yet they are so basic. This is a proof that Unity do not eat their own dogfood. So disappointing why they don't care about fixing the fundamental workflow, instead, updating the cosmetics. I would be careless about the font and button backgrounds if they can work on fixing the workflow first.

    To be honest, Unity employees should try to learn UE4 for a month as a mendatory and they will understand flaws in their own editor.
     
    Willbkool_FPCS likes this.
  44. runevision

    runevision

    Unity Technologies

    Joined:
    Nov 28, 2007
    Posts:
    1,594
    We do. As a company, we have teams doing internal productions, and several of us as individuals develop games or other projects in Unity on the side. And it's not like we don't know there are issues, we are just also under a lot of constraints that mean we can't do everything that everyone wants.

    I would suggest to keep a constructive and respectful tone, and refrain from making ill-advised assumptions and accusations, if you want to maintain a positive and fruitful relationship with us and other people. And please read the Unity Developer Network Rules.
     
  45. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    405
    They are doing this more and more, see the FPS example as a good project they made to dogfood. And they are working on a fix, we just have to be a little patient. Its also very encouraging that they are actively participating in this thread and others to get our opinion, and acting on it.

    Way to go Unity! Thanks @runevision and team :)
     
    Arsonistic and runevision like this.
  46. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    468
    joshcamas likes this.
  47. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    552
    It's a shame they stuck this in with the new terrain system, if we want to use the new terrain system we have to get stuck with the new prefab system. which is terrible
     
    Paul-Swanson likes this.
  48. TX128

    TX128

    Joined:
    Aug 22, 2018
    Posts:
    25
    The new workflow is kind of fine, but the removed functionality is not acceptable IMHO.

    In our project we have hundreds of prefabs with thousands of components that can't adhere to the new workflow. I have to change a parameter of one of the components on 40 of them. Do I have to seriously place them on the scene? The sidebar that shows the button "Open Prefab" is quite infurating. You have the main panel information about the piece you have selected noot being put to use and you're forced to double click. But again, that is a minor complaint in comparison to not being able to edit multiple prefabs at once.

    So feedback:

    Add Alt-Up to leave Prefab Mode. File Explorers use it and you're not on the project explorer, so there would be a good use. That way the flow doesn't get that interrupted if you get used to double clicking on the prefab and hitting Alt-Up to leave. It would feel almost natural if you don't want to implement an Inspector on high level prefabs.

    You must add back the functionality to multiple edit high level prefabs and apply them all at the same time. Call it that, call it a button to open all of these prefabs in prefab mode all at the same time and do that from there. Minor level implementations are not important to us, but removing high level functionality that helped with fast refactoring entire projects is not acceptable.
     
    Shorely, joshcamas and Rich_A like this.
  49. MatthieuPr

    MatthieuPr

    Joined:
    May 4, 2017
    Posts:
    56
    To open all those prefabs can just use the shortcuts, no need to drag them into a scene. ;)
    Similar with the closing, just have to read up all the posts to find the answer you look for :)
    Related to your actual issue: you can stay in 2018.2 with your project, depends a lot on your requirements.

    If you do move to 2018.3, it will be a world of pain :D It might have been better to have new prefab system come out with 2019.1 and have improved prefab free 2018.LTS (or what ever long term support is called from them).

    But WHEN you move to 2018.3 you can't stick with your 2018.2 prefab scripts nor with your prefab design flow. The improved prefab changes how you should think about a prefab.

    In you example every time you want to change component on 40 prefabs you should investigate to turn the prefab the component is on as a nested prefab or if very small differences between all those 100 prefabs, you need to work with the variants system...

    The new system is far from perfect, but nowhere near as bad as you might think. It took me about 3-4 weeks of work with loads of forum posts to get proper understanding of new system and will spend next 3-4 weeks (or more) spreading the knowledge to the team :)
     
    Shorely and ratking like this.
  50. Rich_A

    Rich_A

    Joined:
    Nov 22, 2016
    Posts:
    151
    I think 2018.4 LTS would be better without these prefab changes. HDRP etc. etc. are going through long Preview programs, to only be finalised sometime in 2019, why not prefabs?

    I agree with an above poster that 2019.1 is the best place for the new prefab system, so that all of the issues can be worked out over the next year.

    The new system is just not intuitive and is a step backwards. I would be very happy to see improvements made once the Unity team are back from their Xmas break though.
     
    Last edited: Jan 2, 2019
    Shorely, Arsonistic and ratking like this.