Acceder a componentes desde código

Curso de Unity 3D

20.  
23.  
25.  
39.  

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 los siguientes elementos:
    •  UI -> Input Field (Text Mesh Pro)
    • UI -> Button (Text Mesh Pro).
    • UI -> Text (Text Mesh Pro).
  2. Creamos un GameObject de tipo Empty y le vinculamos el siguiente código:
...
using TMPro; //Si usamos TextMeshPro, debemos importar este módulo

public class GameManager : MonoBehaviour{
    public void ShowValue(){
        string valor = GameObject.Find("Input").GetComponent<TMP_InputField>().text;
        GameObject.Find("Output").GetComponent<TMP_Text>().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 en Unity 3D
Elige tu propia aventura con Unity3D →

Aviso Legal | Política de privacidad