Global GUISkin?

I have quite a big project with many tests and experiments in over 10 different scenes.
I wanted to change the GUI Skin so it would all look a bit better.

Does anyone know of a simple way to globally change the GUISkin?

I did it the hard way now, went into every scene, looked for the GUI-Script and included a public GUISkin-Variable which I then set in the Inspector. This took some time since I often have several GUI-Scripts for the same scene (its all a bit chaotic, but its only for testing after all…)

You may want to look into using a ‘singleton’, or something similar. For example:

public class MyGuiManager : MonoBehaviour 
  public GUISkin guiSkin;

  private static MyGuiManager instance;

  void Awake()
    instance = this;

  public static GUISkin GetSkin()
    return instance.guiSkin;

As long as you have one game object in your scene with this script, then all your other OnGUI() functions can just call:

void OnGUI()
{ = MyGuiManager.GetSkin();
  // ...

If the game object containing MyGuiManager is in a prefab, then changing the skin for everything only has to happen there.