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.
- Ubicamos en pantalla un UI -> Input Field, un UI -> Button y un UI -> Text.
- Vamos a trabajar usando el tamaño de la cámara para el canvas. Para ello:
- Seleccionamos el canvas en el panel de jerarquía.
- Componente Canvas -> Render mode: Screen World Space
- Vamos a ajustar el canvas a la escena. Para ello:
- Lo desplazamos: x:0, y:0, z:0.
- Lo escalamos (es importante no cambiar su width y height o se verá pixelado). x:0.4, y:0.4, z:0.4.
- 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)