After upgrading to 5.3, the script field in the inspector shows “faded”, and it’s not possible to replace it by clicking the circle button on the right, nor by dragging a new one, like before.
I can’t understand how this feature was removed in this version, and moreover I didn’t see anyone noticing it!
How can I workaround this issue, without going crazy?!
Strangely, a project I’d started creating with the previous release of Unity doesn’t display this behaviour in 5.3, scripts can been dragged / selected as expected.
If I add a script from the earlier project to a new 5.3 project, it’s greyed out.
This is a terrible feature removal, I found it extremely useful, and the solution “add the new one, and remove the old one” is just garbage. I’d then have to copy every value if the new script inherits from the old one. I’m freaking out with this behaviour change.
What if you are refactoring and you change the name of a class? In previous versions you can set the renamed script in the “Missing Component” field and problem solved, right now that feature has been lost.
I will use the “Debug Mode” trick despite i don’t like it
That one might actually be solved by the tighter integration between code editors and Unity that is being worked on at the moment - so that when you rename the file in your code editor, the code editor can communicate the change to Unity so that the metadata can be kept in sync. For now what you could do is tell your code editor to rename the class but not rename the file, and then do the file rename inside of Unity.