In past I have often created scripts, done loads of complex stuff with it, dragged loads of scene objects and references to objects to it and generally just used it as I intended. Let’s call it Character.cs
At some point I decided to add classes to the game and now some of the characters have the ability to do magic also, on top of everything the Character class can do and I decide that since not all characters can do magic I am going to subclass Character and call it MageCharacter.cs. Then a class called ElvenCharacter that includes archery etc… All of them have Character as a base class but ALL the character prefabs in my game already have the Character component on them, all configured with relevant settings and linking components and prefab references, have their stats defined and read to go…
In the old versions of Unity I simply drag MageCharacter on top of the Character component in the editor and voila… I now have a MageCharacter and allllll those lovely settings and references I had before all stay in tact and I can just continue to add the new stuff for that class.
As of now, that field is read only and I need to drag MageCharacter as a separate component and copy every single value one by one, find every reference and drag it to the relevant slot and just duplicate everything that I already had setup, one field at a time… then eventually delete the original.
Why in the world, after all these years of making life so easy did you decide to go backwards and make this simple subclassing feature so complicated now?
Is there a way I can unlock that field so I can use it as before? Or am I doomed to live with this stone age feature in the latest and greatest version of Unity?
I can’t help but be reminded of the time when you first had to create a Prefab GameObject in the Project tab and THEN drag the content from the scene into the prefab. Then, one day, you decided to create the prefab simply by dragging it from the scene into the projects tab and I recall vividly what you said back then: “Why didn’t we think of this before?”.
Exactly the same situation now but backwards. You allowed a component to be replaced by dragging a new one onto it and now you have gone and removed that simplicity, making life harder again. Why?