How to Edit a Copy of the Default Skin

For cases where I want to use most of the settings from Unity’s default skin, but just tweak a thing or two and only for one element at a time (say, a button), I’m attempting to create a copy of a style from the default skin and then just edit that copy. Since the docs say that the constructor for GUIStyle can take as an argument another style which it will construct a new copy of, I tried using that:

var myStyle:GUIStyle=GUIStyle(GUI.skin.button);

However, myStyle does not seem to have been filled out; it’s all blank as if I hadn’t called the constructor. I’ve further tried assigning it directly:

var myStyle:GUIStyle=GUI.skin.button;

This now seems to make myStyle into a pointer of sorts, so that any changes I make to myStyle are actually applied directly to GUI.skin.button and affect all other buttons in the game. (Not only that, it seems to leave the default skin this way permanently, so that I can’t seem to retrieve the factory-settings even by calling “GUI.skin=null;”.

So how might one make a small tweak to the default GUI.skin, for only one particular GUIContent?

Try downloading this- it gives you all the assets in the default skin, which allows you to swap and change the ones you need with ease! Then, just use that skin for everything instead of the default one.

Also, it's funny that using the GUIStyle constructor in the way you mentioned there didn't work, since the documentation claims it should work the way you think it should. Can someone confirm how the usage of the 'new' keyword in javascript relates to this kind of thing? I'm a C# person normally, so I'm not too familiar with the ins and outs of javascript programming.