x


My own GuiSkin on the script

Hi... I have this script

var score = 0;
var scoreText = "Score: 0";

function OnTriggerEnter( other : Collider ) {
    Debug.Log("OnTriggerEnter() was called");
    if (other.tag == "Coin") {
        Debug.Log("Other object is a coin");
        score += 5;
        scoreText = "Score: " + score;
        Debug.Log("Score is now " + score);
        Destroy(other.gameObject);
    }
}

function OnGUI () {
     GUI.Label (Rect (10, 10, 100, 20), scoreText.ToString()); }

I have a GuiSkin and i want the things in the script like "Score: " to take the font, color etc from my GuiSkin. What i have to put in my code to fix that? Please correct it! Thank you.

more ▼

asked Nov 22 '10 at 07:30 PM

tomeromero gravatar image

tomeromero
75 15 15 22

(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

In your script, have

var mySkin : GUISkin;

as a public variable (and drag the skin onto it in the inspector of course). Then your OnGUI function should be

function OnGUI () {
    GUI.skin = mySkin;
    // rest of stuff here
}
more ▼

answered Nov 22 '10 at 08:19 PM

Eric5h5 gravatar image

Eric5h5
80.1k 41 132 519

(comments are locked)
10|3000 characters needed characters left

Add this to the top of your script:

var myScoreStyle:GUIStyle;

now change your GUI.Label from

GUI.Label (Rect (10, 10, 100, 20), scoreText.ToString());

to

GUI.Label(Rect(10,10,100,20),scoreText.ToString(),myScoreStyle);

Note the addition of the "myScoreStyle" at the end of the GUI.Label.

Now, locate the properties panel for this script and you'll see a drop down (arrow thingy) with the name myScoreStyle ... open that up and change the style as you see fit.

Any time you want to override the default GUISkin, create a new GUIStyle variable and assign that to your GUIObject.

OR .. you can scroll to the bottom of your GUISkin and in the Custom Styles drop down, add a new element to the size property and you can adjust your new custom style there. In order to reference this new custom style, you will have to change your GUI.Label to look like this:

 GUI.Label(Rect(10,10,100,20),scoreText.ToString(),"myScoreStyle");

Note the Quotes around the myScoreStyle. Also, with this approach, you no longer need to create a GUIStyle variable at the top of your script.

more ▼

answered Nov 22 '10 at 08:08 PM

GlennHeckman gravatar image

GlennHeckman
335 7 10 19

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x5058
x3673
x3321
x491

asked: Nov 22 '10 at 07:30 PM

Seen: 1633 times

Last Updated: Nov 22 '10 at 07:30 PM