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.