Get Component – Script from Another Object

Create a new scene with:

1. Camera

2. GUI Text

3. Cube, attach ‘CubeScript.js’


#pragma strict

// private per nasconderla in Inspector: nome dello script da prelevare
private var gameController : GameControllerScript;

function Start () {
    // inserisco in una variabile l'oggetto con tag GameController
    var gameControllerObject : GameObject = GameObject.FindWithTag ("GameController");
    // se l'oggetto con tag GameController esiste inserisco in una variabile il componente GameControllerScript.js
    if (gameControllerObject != null)
    {
        gameController = gameControllerObject.GetComponent (GameControllerScript);
    }
    // se l'oggetto con tag GameController non esiste restituisce un messaggio di errore
    if (gameControllerObject == null)
    {
        Debug.Log ("Cannot find 'GameControllerScript.js' script");
    }
}

function Update () {
}


function OnMouseDown ()
{
        // When you click over the object
        Debug.Log('clicked'); // Debug Code, remove in the end
        // invia a GameControllerScript.js, alla funzione TextUpdate() la variabile myNewTextValue
        var myNewTextValue : int = 2;
        gameController.TextUpdate (myNewTextValue);
}

4. Empty Object:

a. name it ‘GameController’
b. tag it ‘GameController’
c. Transform> Reset, it resets the position at 0,0,0
d. attach ‘GameControllerScript.js’


#pragma strict

var mytext : GUIText; // Assign it in Inspector
private var myTextValue : int; // hide it in Inspector, we want drive it only via code!

function Start () {
// give them an initial value when the game starts
mytext.text = "First text"; 
myTextValue = 1;
}

function Update () {
}


function TextUpdate (myNewTextValue : int) {
if (myNewTextValue == 2)
    {
        // play the track 1, volume 0-1
        mytext.text = "Second text";
    }
    // if (trackValue == 2) -> it will play track 2 and so on...
}

e. Inspector> ‘GameControllerScript.js’ assign the GUIText into var slot

5. Play, when you click over the Cube the GuiText changes!

For italian people: Come funziona?

1. ‘CubeScript.js’ controlla l’esistenza di GameController(oggetto)
2. se esiste ottiene da GameController(oggetto) il componente ‘GameControllerScript.js’
3. invia al click del mouse a GameControllerScript.js> funzione TextUpdate() un valore
4. ‘GameControllerScript.js’ riceve questo valore e cambia la stringa di testo.