Acceder a componentes desde código

Curso de Unity 3D

21.  
22.  
27.  
38.  

Acceder a componentes del propio objeto

public class Codigo : MonoBehaviour{
	private Transform tr;

	void Start(){
		//GetComponent es un método del objeto implícito gameObject
		Debug.Log(GetComponent<Transform>().position.x);

		// Es posible acceder directamente al componente transform de un objeto de la siguiente forma:
		Debug.Log(transform.position.x);
	}
}

Acceder a otro objeto

public class Codigo : MonoBehaviour
{
    private Transform tr;

    void Start()
    {
        GameObject go = GameObject.Find("Cube");
        Debug.Log(go.transform.position.x);
    }
}

Ejercicios

Vincular un Input de texto a un GameObject y recuperar su valor.

  1. Ubicamos en pantalla un UI -> Input Field, un UI -> Button y un UI -> Text.
  2. Vamos a trabajar usando el tamaño de la cámara para el canvas. Para ello:
    1. Seleccionamos el canvas en el panel de jerarquía.
    2. Componente Canvas -> Render mode: Screen World Space
    3. Vamos a ajustar el canvas a la escena. Para ello:
      1. Lo desplazamos: x:0, y:0, z:0.
      2. Lo escalamos (es importante no cambiar su width y height o se verá pixelado). x:0.4, y:0.4, z:0.4.
  3. Creamos un GameObject de tipo Empty y le vinculamos el siguiente código:
using UnityEngine;
using UnityEngine.UI; // Si estás programando elementos del camvas, no te olvides de importar esta librería

public class GameController : MonoBehaviour
{
    public void mostrarValor()
    {
        string valor = GameObject.Find("TextoDelInput").GetComponent<InputField>().text;
        GameObject.Find("Resultado").GetComponent<InputField>().text = valor;
    }

}

Seleccionamos el Button -> Componente Button -> On Click -> Seleccionamos en la pestaña escena que se despliega al pulsar el circulito el empty con el script asociado -> Seleccionamos la función mostrarValor().

Acierta número secreto

Debemos genarar un número secreto cuando se inicialice el juego. Para ello, declararemos una variable global n y la inicializaremos dentro del método Start():

void Start(){
	n = Random.Range(1, 3);
	Debug.Log(n);
}

Debemos comparar el valor introducido por el usuario con el almacenado en la variable n. Como el número introducido por el usuario será de tipo texto, y n es de tipo numérico, pasaremos el valor de n a texto en la comparación:

if( ""+n == valor)
← User Interface
Elige tu propia aventura con Unity3D →

Aviso Legal | Política de privacidad