Custom font in GUI.Label, but can't change it's color

Hi, I followed the Michael La Voie answer from this post: , but I can't change font color. By default the shader of an imported font is read-only and I can't manually change the color, though here are 2 script attempts which failed:

  • GUI.color =;
  • myStyle.font.material.color =;

I came to the same problem and found a simple solution. This is JavaScript but sure you get the point if you want to use C#:

var TextStyle = new GUIStyle();

function OnGUI ()
    GUI.Label (Rect (10, 10, 200, 80), "This is a styled text", TextStyle);

Add the above script to any GameObject. The script component will now publish a property TextStyle, where you can edit and control all of its properties at design time:

  • TextStyle -> Normal -> Text Color for setting the text color.
  • TextStyle -> Font for specifying any font (drag & drop from your Assets or choose from the drop-down menu).

Of course, you can also set the properties at runtime:

function OnStart ()
    TextStyle.normal.textColor =;
    TextStyle.font = myFont;

I think you want GUI.contentColor, e.g.

GUI.contentColor =;

Try this in your start function:

TextStyle.normal.textColor =;

As of Unity 4, this works:

GUI.color =

do like this:
gui.label(rect, “gui_color_label”)

This should work:

var TextColor : Color = Color.white;

function Start () {
	guiText.material.color = TextColor;