¡Bienvenido! En este codelab, te explicaremos los pasos que debes seguir para realizar tu cuarto ejercicio de programación en tu aplicación del HuertoXR. Recuerda que todos los pasos están basados en los videos y tutoriales del Módulo 5. Si requieres profundizar alguno, puedes volver a ver el video correspondiente al tema evaluado en el paso.

Temas evaluados

Objetivo

En este ejercicio pondrás a prueba los conocimientos adquiridos en el módulo 5. Crearás un tag en Unity y lo asignarás a varios objetos de juego. Luego, desarrollarás un script que detecte los objetos con ese tag y cuente cuántos cumplen con una condición específica, mostrando los resultados en una UI interactiva.

  1. Crea un nuevo tag llamado tomates para identificar todos los objetos Tomate del cultivo.
  2. Agrega el nuevo tag a todos los tomates de la escena.
  3. Crea un objeto de juego vacío llamado scriptTomates.
  4. Dentro del nuevo objeto, crea un script llamado ControladoTomates.cs encargado de contar la cantidad de tomates maduros en cultivo.
  5. Dentro del script, declara un arreglo llamado objetosTomates para almacenar todos los objetos de juego con el tag tomates.
  6. En el método Start(), busca todos los objetos con el tag tomates y asígnalos dentro del arreglo creado.
  7. Crea una función DarCantidadTomatesMaduros() para llevar el conteo de tomates maduros.
  8. Dentro de esta función, utiliza un ciclo que recorra cada alimento dentro de objetosTomates y asegúrate de verificar que el componente ControladorMaduracion de cada alimento indique que esté maduro.
  9. Ahora, dentro del script ControladorTablet.cs, creado previamente durante el módulo 5, agrega una variable de tipo ControladorTomates y nombrala scriptCtrlTomates.
  10. Dentro de este mismo script, ControladorTablet.cs, crea una función llamada MostrarCantidadActualizadaTomates(). En esta función, agrega una sentencia encargada de buscar la función DarCantidadTomatesMaduros() dentro de scriptCtrlTomates y, finalmente, asígnale este String al texto textoCantidad.
public void MostrarCantidadActualizadaTomates()
{
    textoCantidad.text = scriptCtrlTomates.DarCantidadTomatesMaduros().ToString();
}
  1. En tu escena de Unity, utilizando el objeto LetreroConTablet crea una Interfaz de Usuario (UI) personalizada. Esta UI debe contar con los siguientes elementos:

  1. Dentro del nuevo objeto LetreroConTablet, asegúrate de que el objeto Tablet tenga el script ControladorTablet.cs. En el inspector, asigna los siguientes objetos en las variables.
  1. Texto cantidad: El texto encargado de mostrar el número de tomates maduros en la UI personalizada.
  2. Script Ctrl Cultivos: El objeto scriptCultivos creado durante el módulo 5.
  3. Script Ctrl Tomates: El objeto scriptTomates creado en el paso 3 del ejercicio.

El objeto Tablet deberá verse de la siguiente manera al terminar este paso.

  1. Selecciona el botón interactivo creado en la UI personalizada y dentro del inspector crea una nueva acción cuando el usuario haga click.
  2. Finalmente, arrastra el objeto Tablet al componente On Click() y selecciona la función MostrarCantidadActualizadaTomates() de ControladorTablet.

Al finalizar el ejercicio deberás entregar:

  1. Un archivo .zip llamado entregaEjercicio5.zip el cual contenga los archivos ControladorTomates.cs, ControladorTablet.cs y fotoEjercicio5.png.

Asegúrate que en el archivo fotoEjercicio5.png sea visible la UI creada y que el proyecto se esté ejecutando. A continuación, te presentamos un ejemplo: