
Objetivo Particular: El estudiante identificará y explicará los elementos clave del entorno de Unity, configurando un nuevo proyecto, importando assets y posicionando la cámara, para obtener una vista general de la estructura del editor y cómo adaptarla a sus necesidades de trabajo.
Descripción general: En esta lección, crearás tu primer proyecto de juego en Unity Hub. Elegirás y posicionarás un vehículo que el jugador podrá conducir, así como un obstáculo que podrá golpear o esquivar. También configurarás una cámara para proporcionar al jugador una vista clara de la escena. Durante el proceso, aprenderás a navegar en el Editor de Unity y te familiarizarás con el movimiento en un espacio 3D. Finalmente, personalizarás la disposición de la ventana en el Editor de Unity para adaptarla a tus preferencias.
Deberás posicionar el vehículo y el obstáculo en el camino y configurar la cámara para que esté perfectamente alineada detrás del vehículo. También tendrás un nuevo diseño personalizado de Unity, optimizado para la edición.
Al final de esta lección, serás capaz de:
Crear un nuevo proyecto a través de Unity Hub
Navegar por el espacio 3D y el Editor de Unity cómodamente
Agregar y manipular objetos en la escena para posicionarlos donde desees
Colocar una cámara en el lugar ideal para tu juego
Controlar la disposición del Editor de Unity para adaptarla a tus necesidades
Objetivo: Al finalizar este subtema, el estudiante será capaz de aplicar conocimientos básicos de scripting en C# para dotar de movimiento al vehículo en la escena, utilizando métodos como Update y conceptos de física de Unity, con el fin de que el objeto responda de manera adecuada a las instrucciones de desplazamiento.
Descripción general: En esta lección, tú harás que tu simulador de conducción cobre vida. Primero, escribirás tu primer script en C#, cambiando la posición del vehículo y permitiéndole moverse hacia adelante. Luego, agregarás componentes de física a tus objetos, permitiendo que colisionen entre sí. Por último, aprenderás cómo duplicar objetos en la jerarquía y posicionarlos a lo largo de la carretera.
Tú tendrás un emocionante vehículo con su propio script en C# y un camino lleno de objetos, todos los cuales pueden chocar entre sí utilizando componentes de física.
Para el final de esta lección, tú serás capaz de:
Crear scripts en C# y aplicarlos a los objetos
Usar Visual Studio y algunas de sus características básicas
Escribir comentarios para hacer tu código más legible
Utilizar métodos y clases fundamentales de C#, como transform.Translate y Vector3
Agregar componentes Rigidbody y Collider para permitir que los objetos colisionen de forma realista
Duplicar objetos en la jerarquía para poblar tu escena
Objetivo: El estudiante analizará y ajustará las variables de desplazamiento y posición de la cámara, utilizando conceptos de actualización de posición como LateUpdate, para conseguir un seguimiento óptimo del vehículo que mejore la experiencia visual del juego.
Descripción general: Mantén tus ojos en el camino! En esta lección, tú escribirás un nuevo script de C# para tu cámara, que le permitirá seguir al vehículo por el camino y darle al jugador una vista adecuada de la escena. Para hacer esto, tendrás que usar un concepto muy importante en programación: las variables.
La cámara seguirá al vehículo por el camino a través de la escena, permitiendo al jugador ver hacia dónde se dirige.
Para el fin de esta lección, serás capaz de:
Declarar variables adecuadamente y entender que las variables pueden ser de diferentes tipos de datos (float, Vector3, GameObject).
Inicializar/asignar variables a través de código o mediante el inspector para establecer valores apropiados para ellas.
Usar modificadores de acceso adecuados (público/privado) para tus variables, facilitando su cambio en el inspector.
Utilizar el método Update y LateUpdate correctamente para ejecutar una acción después de que otra haya sucedido.
Objetivo: El estudiante analizará y ajustará las variables de desplazamiento y posición de la cámara, utilizando conceptos de actualización de posición como LateUpdate, para conseguir un seguimiento óptimo del vehículo que mejore la experiencia visual del juego.
Descripción general: Mantén tus ojos en el camino! En esta lección, tú escribirás un nuevo script de C# para tu cámara, que le permitirá seguir al vehículo por el camino y darle al jugador una vista adecuada de la escena. Para hacer esto, tendrás que usar un concepto muy importante en programación: las variables.
La cámara seguirá al vehículo por el camino a través de la escena, permitiendo al jugador ver hacia dónde se dirige.
Para el fin de esta lección, serás capaz de:
Declarar variables adecuadamente y entender que las variables pueden ser de diferentes tipos de datos (float, Vector3, GameObject).
Inicializar/asignar variables a través de código o mediante el inspector para establecer valores apropiados para ellas.
Usar modificadores de acceso adecuados (público/privado) para tus variables, facilitando su cambio en el inspector.
Utilizar el método Update y LateUpdate correctamente para ejecutar una acción después de que otra haya sucedido.
Objetivo: El estudiante desarrollará un documento de diseño de proyecto, que incluya cronograma, objetivos y un boceto del producto mínimo viable (MVP), para planificar la creación de un proyecto personal aplicando los conceptos y habilidades adquiridos hasta el momento.
En esta primera sesión del laboratorio, comenzarás a trabajar en los requisitos preliminares para crear un proyecto personal exitoso en este curso. Primero, aprenderás qué es un proyecto personal, cuáles son sus objetivos y cuáles son sus limitaciones potenciales. Luego, es el momento de pensar en una idea y desarrollarla en detalle en tu Documento de Diseño, incluida una línea de tiempo para cuándo esperas completar ciertas características. Finalmente, dedicarás un tiempo a dibujar un boceto de tu proyecto para ayudarte a visualizarlo y compartir tu idea con otros.
El Documento de Diseño será completado fuera de clase, incluyendo el concepto, la cronología y un boceto preliminar del producto mínimo viable.
Para el fin de este laboratorio, tú serás capaz de:
Idear un proyecto con un alcance adecuado a tu tiempo y recursos disponibles.
Reflexionar sobre el concepto del proyecto para entender mejor sus requisitos.
Planificar hitos del proyecto con fechas límite para comprender mejor el ciclo de producción y mantenerte más responsable.
Crear un simple bosquejo/guion gráfico para comunicar mejor tus ideas.
Objetivo: El estudiante ajustará la posición del jugador en la escena, utilizando la entrada del usuario para moverlo dentro de los límites establecidos, aplicando lógica de control que evite que el jugador salga del área de juego.
Comenzarás esta unidad creando un nuevo proyecto para tu segundo prototipo y haciendo que el movimiento básico del jugador funcione. Primero, elige qué personaje deseas usar, qué tipos de animales deseas que interactúen y qué alimentos quieres utilizar para alimentar a esos animales. Implementarás el movimiento básico del jugador de lado a lado, tal como lo hiciste en el Prototipo 1, pero luego utilizarás declaraciones if para mantener al jugador dentro de los límites.
El jugador será capaz de moverse hacia la izquierda y hacia la derecha en la pantalla basada en las teclas de izquierda y derecha que presiona el usuario, pero no podrá salir del área de juego en ningún lado.
Al final de esta lección, serás capaz de:
Ajustar la escala de un objeto proporcionalmente para lograr el tamaño que deseas.
Usar más cómodamente la función Get Input para utilizar la entrada del usuario para controlar un objeto.
Cree una declaración if-then para implementar lógica básica en su proyecto, incluyendo el uso de operadores mayor que (>) y menor que (<).
Usar comentarios y formato automático para hacer que tu código sea más limpio y legible para otros programadores.
Objetivo: Al finalizar este subtema, el estudiante será capaz de analizar y estructurar el comportamiento de un proyectil en la escena, transformándolo en un prefab y programando su movimiento en respuesta a una entrada de usuario, además de gestionar su destrucción al salir de los límites de la pantalla para optimizar el rendimiento del juego.
Descripción general : En esta lección, permitirás al jugador lanzar un proyectil a través de la escena. Primero, escribirás un nuevo script para enviar el proyectil hacia adelante. A continuación, almacenarás el proyectil junto con todos sus scripts y propiedades utilizando un importante nuevo concepto en Unity llamado Prefabs. El jugador podrá lanzar el prefab del proyectil con una pulsación de la barra espaciadora. Finalmente, agregarás límites a la escena, destruyendo cualquier objeto que salga de la pantalla.
El jugador podrá presionar la barra espaciadora y lanzar un proyectil prefab en la escena, el cual se destruirá a sí mismo cuando salga de los límites del juego. Los animales también serán eliminados de la escena cuando dejen los límites del juego.
Para el final de esta lección, podrás:
Transformar un objeto del juego en un prefab que pueda ser usado como plantilla.
Instanciar prefabs para generar en la escena.
Anular prefabs para actualizar y guardar sus características.
Obtener la entrada del usuario con Input.GetKey y Input.GetKeyDown para presionar teclas específicas.
Aplicar componentes a múltiples objetos a la vez para trabajar de la manera más eficiente posible.
Objetivo: El estudiante creará un sistema de generación aleatoria de animales en la escena, configurando un administrador de spawn para instanciar prefabs en ubicaciones aleatorias, y ajustará la cámara para proporcionar una perspectiva adecuada, lo que permitirá implementar mecánicas de juego más dinámicas.
Descripción general : Nuestros prefabs de animales caminan a través de la pantalla y se destruyen al salir de los límites, pero en realidad no aparecen en el juego a menos que los arrastremos manualmente. En esta lección permitiremos que los animales se generen automáticamente en una ubicación aleatoria en la parte superior de la pantalla. Para ello, crearemos un nuevo objeto y un nuevo script para gestionar el proceso completo de spawn.
Cuando el usuario presione la tecla S, se generará un animal seleccionado al azar en una posición aleatoria en la parte superior de la pantalla, avanzando hacia el jugador.
Al finalizar esta lección, serás capaz de:
Crear un objeto vacío con un script adjunto.
Usar arreglos para crear una lista accesible de objetos o valores.
Usar variables enteras para determinar un índice de formación.
Generar valores aleatoriamente con Random.Range para seleccionar objetos en arreglos y posiciones de aparición.
Cambiar la perspectiva de la cámara para ajustarse mejor a tu juego.
Objetivo: Al concluir este subtema, el estudiante será capaz de evaluar y configurar interacciones de colisión en Unity, utilizando componentes de colisionador y disparador para detectar contactos entre objetos. Además, programará eventos de colisión que desencadenen la destrucción de objetos y mensajes de fin de juego, fomentando un manejo adecuado de eventos críticos en el juego.
Descripción general: Nuestro juego está casi listo, pero hay algunas cosas críticas que debemos agregar antes de terminar. En primer lugar, en lugar de presionar S para desovar los animales, los desovaremos en un temporizador para que aparezcan cada pocos segundos. A continuación, agregaremos colisionadores a todos nuestros prefabricados y haremos que lanzar un proyectil sobre un animal lo destruya. Finalmente, mostraremos un mensaje de "Juego Terminado" si algún animal pasa al jugador.
Los animales se desovarán en un intervalo cronometrado y caminarán hacia abajo en la pantalla, desencadenando un mensaje de "Juego Terminado" si pasan al jugador. Si el jugador los golpea con un proyectil, serán destruidos.
Al final de esta lección, serás capaz de:
Repetir funciones en un temporizador utilizando InvokeRepeating.
Escribir funciones personalizadas para hacer tu código más legible.
Editar cajas colisionadoras para adaptar sus objetos adecuadamente.
Detectar colisiones y destruir objetos que chocan entre sí.
Mostrar mensajes en la consola con Debug.Log.
Objetivo: El estudiante implementará las habilidades aprendidas en los subtemas para crear una dinámica de juego donde el jugador debe recoger objetos, aplicando lo aprendido sobre prefabs, colisiones y control de eventos.
Usa tus habilidades de programación y generación de números aleatorios para programar este desafío donde las bolas descienden aleatoriamente del cielo y tú debes enviar a tu perro a atraparlas antes de que golpeen el suelo. Para completar este desafío, deberás asegurarte de que tus variables estén asignadas adecuadamente, tus declaraciones if estén programadas correctamente, las colisiones se detecten perfectamente y que los objetos se generen al azar.
Una pelota aleatoria (de 3) se genera en una posición aleatoria en la parte superior de la pantalla.
Cuando el usuario presiona la barra espaciadora, un perro es instanciado y corre a atrapar la pelota.
Si el perro choca con la pelota, la pelota es destruida.
Si la pelota alcanza el suelo, se despliega un mensaje de depuración "Game Over".
El perro y las bolas son destruidos de la escena cuando salen de la pantalla.
En este desafío, fortalecerás las siguientes habilidades / conceptos:
Asignación de variables y arreglos en el inspector
Edición de colliders al tamaño adecuado
Pruebas de posiciones XYZ con operadores mayor/menor en declaraciones if-else
Generación de valores aleatorios y selección de objetos de arreglos
Descarga los "Challenge 2 Starter Files" de la sección de Materiales del Tutorial, luego haz doble clic en él para importar.
Abre tu proyecto Prototype 2
En la ventana del proyecto > Assets > Challenge 2 > Instructions carpeta, utiliza el video "Challenge 2 - Instructions" y "Result" como guía para completar el desafío.
Objetivo: El estudiante compartirá su proyecto en una plataforma colaborativa y participará en la retroalimentación del trabajo de otros estudiantes, demostrando un compromiso con la comunidad de aprendizaje y desarrollando una actitud proactiva en el intercambio de ideas.
Objetivo: El estudiante desarrollará un fondo que se repite de forma continua y configurará el movimiento de los obstáculos para detenerse cuando el juego termine, mejorando la jugabilidad y el flujo visual en Unity.
Descripción general: Hemos creado las mecánicas básicas de este juego: el jugador puede presionar la barra espaciadora para saltar sobre obstáculos que se acercan. Sin embargo, parece que el fondo desaparece después de unos segundos. Para solucionarlo, necesitamos repetir el fondo uniformemente para que parezca que el mundo se mueve rápidamente. También queremos que el juego se detenga cuando el jugador choca con un obstáculo, deteniendo la repetición del fondo y el aparecimiento de nuevos obstáculos. Finalmente, debemos destruir cualquier obstáculo que pase al jugador.
El fondo debe moverse sin problemas al mismo tiempo que los obstáculos, y los obstáculos desaparecerán al salir de los límites del juego. Con el uso de comunicación por scripting, el fondo y el administrador de spawn se detendrán cuando el jugador colisione con un obstáculo. La colisión también activará un mensaje de "Game Over" en la consola.
Al final de esta lección, podrás:
Usar etiquetas para marcar objetos de juego y llamarlos en el código.
Usar comunicación entre scripts para acceder a métodos y variables de otros scripts.
Objetivo: El estudiante configurará y ajustará las animaciones de movimiento, salto y caída del personaje para que el jugador responda correctamente a las acciones del usuario, creando una interacción fluida en la escena.
Descripción general: El juego se ve excelente hasta ahora, pero el personaje del jugador se ve un poco... sin vida. En lugar de que el personaje simplemente se deslice sobre el suelo, le daremos animaciones para correr, saltar e incluso caer al ser golpeado. También ajustaremos la velocidad de estas animaciones, sincronizándolas para que se vean bien en el entorno del juego.
Con el controlador de animaciones, el personaje tendrá 3 nuevas animaciones que ocurrirán en 3 estados de juego diferentes: correr, saltar y caer. Todas estas transiciones serán fluidas y estarán cronometradas para adaptarse al juego.
Al final de esta lección, podrás:
Administrar estados básicos de animación en el controlador de animación.
Ajustar la velocidad de las animaciones para que se adapten al personaje o al juego.
Establecer una animación por defecto y desencadenar otras con anim.SetTrigger.
Establecer un estado permanente para "Game Over" con anim.SetBool.
Objetivo: Al finalizar este subtema, el estudiante combinará partículas y efectos de sonido, programando la reproducción de estos al realizar acciones como saltar o colisionar, con el objetivo de enriquecer la experiencia audiovisual del juego.
Descripción general: Este juego se ve muy bien, pero le falta algo crucial: sonido y efectos de partículas. ¡Los sonidos y la música le darán vida a un mundo de juego que de otro modo estaría en silencio, y las partículas harán que las acciones del jugador sean más dinámicas e impresionantes! En esta lección, agregaremos sonidos y partículas geniales cuando el personaje esté corriendo, saltando y chocando.
La música se reproducirá mientras el jugador corre a través de la escena, levantando partículas de suciedad detrás de sus pies. Se escuchará un sonido elástico cuando salten y un fuerte golpe cuando choquen, acompañado de una nube de partículas de humo al caer.
Al finalizar esta lección, podrás:
Adjuntar efectos de partículas como objetos hijos de los objetos de juego.
Detener y reproducir efectos de partículas que coincidan con los estados de animación del personaje.
Trabajar con fuentes de audio y oyentes de audio para reproducir música de fondo.
Agrega efectos de sonido para mejorar tu proyecto.
Objetivo: El estudiante analizará el código del personaje principal y realizará ajustes para refinar el control del jugador, asegurando que responda de forma intuitiva a las entradas de usuario.
Descripción general: En esta lección, programarás el movimiento básico del jugador, incluyendo el código que limita dicho movimiento. Dado que existen muchas maneras diferentes en que el jugador puede moverse, dependiendo del tipo de proyecto en el que trabajas, no se proporcionarán instrucciones paso a paso sobre cómo hacerlo. Para lograr esto, deberás investigar, referenciar otros códigos y solucionar problemas cuando algo salga mal.
El jugador podrá moverse basándose en la entrada del usuario, pero no podrá moverse a lugares donde no deba.
Al finalizar este laboratorio, podrás:
Programar el tipo de movimiento del jugador basado en la entrada del usuario.
Restringir el movimiento del jugador de la manera más adecuada, dependiendo de las necesidades del proyecto.
Solucionar problemas y encontrar soluciones alternativas relacionadas con el movimiento del jugador.
Objetivo: El estudiante compartirá sus avances y resultados en la plataforma colaborativa, mostrando disposición para recibir retroalimentación y enriquecer sus habilidades a través del intercambio de ideas.
Objetivo: El estudiante configurará la posición del jugador y establecerá el punto focal de la cámara para que siga el movimiento del personaje, facilitando la interacción entre los controles del usuario y la orientación del personaje en la escena.
Descripción general: Primero crearemos un nuevo prototipo y descargaremos los archivos de inicio. Esto te permitirá observar una isla hermosa, cielo y efectos de partículas, todo personalizable. Luego, permitirás que el jugador gire la cámara alrededor de la isla en un radio perfecto, ofreciendo una vista impresionante de la escena. El jugador será representado por una esfera, con una textura detallada a elección. Finalmente, se añadirá fuerza al jugador para moverse en la dirección de la cámara.
La cámara girará alrededor de un punto focal en el centro de la isla, siempre siguiendo la entrada horizontal del jugador. El jugador controlará una esfera texturizada que podrá moverse hacia adelante o hacia atrás en la dirección del punto focal de la cámara.
Al finalizar esta lección, serás capaz de:
Aplicar texturas a objetos.
Adjuntar una cámara a un punto focal usando relaciones padre-hijo.
Transformar objetos en función de los valores locales XYZ.
Objetivo: Al concluir este subtema, el estudiante analizará y programará la inteligencia básica de un enemigo que sigue al jugador, implementando lógica de generación de enemigos en posiciones aleatorias para mejorar la dificultad del juego.
Descripción general: El jugador puede rodar alrededor de su antojo... pero no tiene un objetivo. En esta lección, le daremos ese objetivo creando un enemigo que desafíe al jugador. Primero, asignaremos al enemigo una textura de tu elección, luego le daremos la capacidad de hacer rebotar al jugador y arrojarlo fuera del borde. Por último, haremos que el enemigo persiga al jugador por la isla y aparezca en posiciones aleatorias.
Un enemigo texturizado y esférico se generará en la isla al comenzar, en una ubicación aleatoria determinada por una función personalizada. Este enemigo perseguirá al jugador alrededor de la isla, haciendo rebotar en el borde si se acercan demasiado.
Al final de esta lección, serás capaz de:
Aplique materiales físicos para hacer que los objetos del juego sean activos.
Normalizar vectores para que el enemigo apunte en dirección al jugador.
Generar aleatoriamente en dos ejes con Random.Range.
Escribir funciones y variables personalizadas avanzadas para mantener tu código limpio y profesional.
Objetivo: El estudiante diseñará un sistema de potenciadores que otorgue habilidades adicionales al personaje por un tiempo limitado, incorporando una cuenta regresiva y un indicador visual de los efectos del power-up.
Descripción general: El enemigo persigue al jugador por la isla, pero el necesita jugador una mejor manera de defenderse... especialmente si añadimos más enemigos. En esta lección, crearemos un Powerup que otorgará al jugador una fuerza temporal que empujará a los enemigos que entren en contacto. El Powerup aparecerá en una posición aleatoria en la isla y resaltará al jugador con un indicador cuando se recoja. El indicador y el Powerup estarán representados por recursos elegantes que elijas.
Resultado del proyecto:
Objetivos de aprendizaje:
Un Powerup aparecerá en una posición aleatoria del mapa.
Cuando el jugador colisione con el Powerup , este desaparecerá y el jugador quedará resaltado con un indicador.
El Powerup durará una cantidad específica de segundos y le dará al jugador una súper fuerza que destruirá a los enemigos.
Repetir funciones con la fuerza de IEnumerador y corrutinas.
Al final de esta lección, serás capaz de:
Escribir mensajes de depuración informativas con concatenación y variables.
Usar SetActive para hacer que los objetos del juego aparezcan y desaparezcan de la escena.
Objetivo: Al finalizar el subtema, el estudiante utilizará bucles for para generar oleadas de enemigos, aumentando progresivamente la dificultad del juego y generando potenciadores con cada nueva oleada.
Descripción general: Tenemos todos los ingredientes para un gran juego: un jugador que rueda y rota, una cámara, un Powerup que otorga súper fuerza y un enemigo que persigue al jugador hasta el final. En esta lección, vamos a unir todas estas piezas.
Primero, mejoraremos el administrador de aparición de enemigos, permitiéndole generar múltiples enemigos y aumentar su número cada vez que se derrota una ola. Generaremos el Powerup con cada ola, dando al jugador la oportunidad de luchar contra una horda cada vez mayor de enemigos.
El Spawn Manager funcionará en ondas, generando múltiples enemigos y un nuevo Powerup con cada iteración. Cada vez que los enemigos se reduzcan a cero, se genera una nueva ola y aumenta el número de enemigos.
Al final de esta lección, podrás:
Repetir funciones con bucles for.
Incrementar valores enteros en un bucle con el operador ++.
Dirigir objetos en una escena con FindObjectsOfType.
Obtener la longitud de un arreglo como un entero con .Length.
Objetivo: El estudiante escribirá guiones adicionales que permitirán la interacción de los personajes en un juego de fútbol básico, aplicando control de movimiento y detección de colisiones en un contexto de simulación deportiva.
Descripción general del desafío:
Utiliza las habilidades que aprendiste en el prototipo de Sumo Battle en un contexto completamente diferente: un campo de fútbol. Igual que en el prototipo, controlarás una pelota girando la cámara y aplicando una fuerza hacia adelante, pero en lugar de empujar a los oponentes fuera del borde, tu objetivo es empujarlos hacia la red del oponente, mientras ellos intentan hacer lo mismo en tu red. Igual que en Sumo Battle, después de cada ronda, una nueva ola de bolas enemigas aparecerá, poniendo a prueba tu defensa. Sin embargo, casi nada en este proyecto está funcionando aún. ¡Es tu trabajo hacer que funcione correctamente!
Los enemigos se mueven hacia tu red, pero puedes golpearlos para alejarlos.
Los potenciadores aplican un aumento temporal de fuerza y desaparecen después de 5 segundos.
Cuando ya no quedan bolas enemigas, una nueva ola aparece con un enemigo adicional.
Definir vectores restando una ubicación en el espacio 3D de otra.
Rastrear el número de objetos de cierto tipo en la escena para activar ciertos eventos.
Usar corrutinas para llevar a cabo comportamientos en intervalos de tiempo específicos.
Usar bucles for y variables dinámicas para ejecutar código un número específico de veces.
Resolver errores relacionados con referencias nulas de variables sin asignar.
En este desafío, reforzarás las siguientes habilidades y conceptos:
Abierto su Prototipo 4 proyecto
Descargar el " Desafío 4 Motor de arranque Archivos” de el Tutorial Materiales sección, luego haga doble clic en ella para Importar
En el Proyecto Ventana > Activos > Desafío 4 > Carpeta de instrucciones , usar Los recursos como guía para completar este desafío
Objetivo: El estudiante analizará y perfeccionará los elementos de jugabilidad básica, evaluando cómo el control del jugador y los elementos de juego interactúan en la escena para optimizar la experiencia del usuario.
Descripción general: En este laboratorio, trabajarás con todos los objetos que no son jugadores para dar vida a tu proyecto con jugabilidad básica. Darás a tus proyectiles, Powerups o enemigos movimiento básico y detección de colisiones, los convertirás en Prefabs y los generarás aleatoriamente a través de un administrador de generación. Al final de este laboratorio, tendrás una visión funcional de tu juego.
Los objetos que no son jugadores se generan en ubicaciones adecuadas en la escena con movimiento básico. Cuando los objetos chocan entre sí, reaccionan como se espera, rebotando o destruyéndose.
Al final de este laboratorio, serás capaz de:
Programar movimiento básico para los objetos.
Gestionar colisiones de objetos de manera eficiente.
Generar objetos Prefabs en intervalos de tiempo específicos.
Objetivo: El estudiante organizará y presentará sus avances en Discord, mostrando la capacidad de sintetizar y comunicar los resultados de su trabajo a sus compañeros de curso para recibir y brindar retroalimentación.
Objetivo: El estudiante creará objetos que reaccionarán a los clics del ratón y configurará su movimiento y destrucción, utilizando listas y corutinas para gestionar el flujo de aparición y eliminación de objetos en la escena.
Descripción general: ¡Es la unidad final! Comenzaremos creando un nuevo proyecto y cambiando la vista del juego a 2D. Luego crearemos una lista de objetivos en los que el jugador podrá hacer clic: tres objetivos "buenos" y uno "malo". Los objetivos se lanzarán girando en el aire después de generarse en una posición aleatoria en la parte inferior del mapa. Finalmente, permitiremos al jugador destruirlos con un clic.
Una lista de tres objetos de buen objetivo y un objeto de mal objetivo se generarán en una posición aleatoria en la parte inferior de la pantalla, empujándolos hacia el aire con una fuerza aleatoria y esfuerzo de torsión. Estos objetivos serán destruidos cuando el jugador haga clic en ellos o caigan fuera de los límites.
Al final de esta lección, serás capaz de:
Cambiar el juego a vista 2D.
Agregar torque a un objeto.
Crear un objeto Game Manager que controle los estados del juego y la generación de objetos.
Crear una lista de objetos y obtener su longitud con .Count.
Usar bucles while para repetir código mientras se cumple una condición.
Usar eventos de clic del ratón para permitir al jugador interactuar con los objetos.
Al concluir este subtema, el estudiante analizará y programará un sistema de puntaje que actualizará y muestreará los puntos obtenidos al eliminar objetivos, utilizando variables y métodos para gestionar el conteo y visualización del puntaje.
Descripción general: Los objetos aparecen en escena y el jugador puede hacer clic para destruirlos, pero no sucede nada. En esta lección, mostraremos un marcador en la interfaz de usuario que indique el puntaje del jugador. Asignaremos un valor de puntos diferente a cada objetivo, sumando o restando puntos al hacer clic. Finalmente, agregaremos efectos de explosión cuando se destruya cada objetivo.
Aparecerá una sección "Puntuación:" en la interfaz de usuario, comenzando desde cero. Cuando el jugador haga clic en un objetivo, el puntaje se actualizará y las partículas explotarán al destruirse el objetivo. Cada objetivo "bueno" suma un valor diferente de puntos, mientras que el objetivo "malo" resta puntos.
Al final de esta lección, podrás:
Crear elementos de la interfaz de usuario en el Canvas.
Fijar elementos y objetos en su lugar con Anchors.
Usar variables y comunicación entre scripts para actualizar elementos en la interfaz de usuario.
Objetivo: El estudiante evaluará el estado del juego y programará condiciones para finalizar la partida, manteniendo la generación de objetivos y mostrando una pantalla de reinicio para permitir que el jugador vuelva a comenzar.
Descripción general: Agregamos un contador de puntaje al juego, pero hay otras características de la interfaz de usuario que podemos añadir. En esta lección, crearemos un texto que diga "Game Over" que se mostrará cuando un objetivo "bueno" caiga debajo del sensor. Durante el Game Over, los objetivos dejarán de aparecer y el puntaje se reiniciará. Finalmente, agregaremos un botón "Restart Game" que permitirá al jugador reiniciar el juego después de perder.
Cuando un objetivo "bueno" cae bajo el sensor en la parte inferior de la pantalla, los objetivos dejarán de aparecer y se mostrará un mensaje de "Game Over". Justo debajo del mensaje de "Game Over" habrá un botón de "Reset Game" que reinicia el juego y restablece la puntuación, para que el jugador pueda jugar de nuevo.
Al final de esta lección, podrás:
Hacer que los elementos de la interfaz de usuario aparezcan y desaparezcan con .SetActive.
Usar comunicación entre scripts y estados del juego para gestionar una pantalla de "Game Over".
Reiniciar el juego usando un botón de la interfaz de usuario y gestión de escenas.
Objetivo: El estudiante diseñará un sistema de selección de dificultad mediante un menú, aplicando lógica de parametrización para ajustar la complejidad del juego y mejorar la experiencia del usuario.
Descripción general: Es hora de la lección final. Para terminar nuestro juego, agregaremos un menú y una pantalla de título. Crearás tu propio título y le darás estilo al texto para que se vea bien. Crearás tres nuevos botones que establecerán la dificultad del juego. ¡A mayor dificultad, los objetivos aparecerán más rápido!
Al iniciar el juego, se abrirá un menú con un título destacado y tres botones de dificultad en la parte inferior de la pantalla. Cada dificultad afectará la velocidad de aparición de los objetivos, aumentando la habilidad necesaria para evitar que caigan los objetivos "buenos".
Al finalizar esta lección, podrás:
Agrupar elementos de la interfaz de usuario (UI) en un objeto padre para crear menús, UI, o HUD.
Agregar listeners para detectar cuando se ha hecho clic en un botón de UI.
Establecer la dificultad usando parámetros en funciones del juego, como la tasa de aparición.
Objetivo: El estudiante implementará una dinámica en la que el jugador debe golpear objetos específicos, empleando controles de precisión y lógica de detección de colisiones.
Este desafío pondrá a prueba tus habilidades de interfaz de usuario en Unity mediante la creación de un juego de estilo "Whack-a-Mole" en el que los jugadores deberán hacer clic en los alimentos que aparecen en la pantalla, evitando al mismo tiempo las calaveras. . Además, se requiere depurar botones, manejar clics del ratón, hacer seguimiento de la puntuación, gestionar secuencias de reanudación y ajustar la dificultad.
Los jugadores harán clic en objetos que caen (alimentos) mientras evitan calaveras.
Incluye botones funcionales para reiniciar el juego y ajustar la dificultad.
La puntuación se actualizará cada vez que el jugador acierte en un objeto.
Las estadísticas de puntuación se mostrarán en la pantalla.
Trabajo con texto y objetos de botón: Asegúrese de que se visualicen y funcionen con el formato adecuado.
Uso adecuado de los métodos de ratón en Unity: Como y otros eventos relacionados con el ratón OnMouseDown.OnMouseEnter
Mostrar variables en objetos de texto usando concatenación: Actualizar dinámicamente la puntuación en pantalla.
Activación y desactivación de objetos según el estado del juego: Mostrar u ocultar elementos (botones, mensajes) dependiendo del progreso o condiciones del juego.
En este siguiente desafío, reforzarás las habilidades y conceptos:
Transferencia de información entre scripts mediante métodos y parámetros personalizados: Comunicar datos entre diferentes componentes o clases del juego para manejar la lógica de manera correcta.
Abre tu proyecto de Prototipo 5 en Unity.
Descarga los "Archivos de Inicio del Desafío 5" desde la sección de Materiales del Tutorial y haz doble clic en ellos para importarlos al proyecto.
En la ventana del Proyecto, ve a Activos > Desafío 5 > Carpeta de instrucciones , y usa el video “Desafío 5 – Resultado” como guía para completar el desafío.
Objetivo: El estudiante explorará y aplicará diferentes activos en su proyecto, personalizando el aspecto y funcionamiento de los elementos de juego para desarrollar su propio estilo visual y funcional.
Descripción general : En este laboratorio, finalmente reemplazarás esos aburridos objetos primitivos con activos visualmente atractivos y dinámicos. Podrás usar activos de la biblioteca de curso proporcionada o explorar la tienda de activos para encontrar otros completamente nuevos y darle a tu juego el aspecto y estilo que deseas. Luego, seguirás el proceso de intercambiar realmente esos nuevos activos en lugar de tus primitivos de marcador de posición. Al final de este laboratorio, tu proyecto tendrá un aspecto mucho mejor.
Todos los objetos primitivos serán reemplazados por modelos 3D reales, manteniendo la misma funcionalidad básica de jugabilidad.
Al final de esta lección, serás capaz de:
Explorar la tienda de activos para encontrar los activos perfectos para tu proyecto.
Usar Prefabs Anidados para reemplazar los objetos de marcador de posición con activos reales.
Ajustar configuraciones de materiales para lograr la resolución y apariencia deseada.
Al finalizar el curso, el participante demostrará habilidades básicas de programación en Unity mediante la creación de prototipos de juegos interactivos. Utilizará la interfaz de Unity, manejará conceptos de física y animación, y desarrollará scripts en C# para controlar objetos y eventos en un entorno 3D. El curso permite una introducción a la creación de experiencias interactivas y prepara al participante para un entendimiento sólido de los fundamentos de programación en Unity.
Unidad 1. Al finalizar la unidad, el alumno será capaz de configurar un proyecto 3D básico en Unity, posicionar elementos en la escena, ajustar la cámara y personalizar la interfaz de usuario. Esto se hará mediante el uso de herramientas del editor de Unity, con el fin de establecer una base sólida para proyectos futuros y fomentar una actitud de orden y personalización en su entorno de trabajo.
Unidad 2. Al finalizar la unidad, el estudiante será capaz de configurar, controlar y gestionar el movimiento de objetos en Unity, además de manejar colisiones y control de eventos, aplicando conocimientos sobre entradas de usuario y prefabs. Este conjunto de habilidades permitirá crear una interacción dinámica y un flujo controlado de eventos en la escena.
Unidad 3. Al finalizar la unidad, el estudiante será capaz de implementar movimientos complejos y efectos visuales en Unity , como saltos, animaciones y partículas, para crear un ambiente de juego dinámico y visualmente atractivo.
Unidad 4. Al finalizar el tema, el participante implementará interactividad básica en un proyecto de Unity mediante controles de usuario (teclado o mouse) para interactuar con objetos. Además, comprenderá los eventos de colisión y sus respuestas, integrando estos elementos en un prototipo funcional de videojuego que refleja los conceptos aprendidos, y presentará su proyecto final para evaluación.
Unidad 5. Objetivo general de la Unidad 5: Al finalizar la unidad, el estudiante será capaz de configurar interacciones complejas y gestionar la dificultad del juego en Unity , aplicando conceptos avanzados de programación para implementar controles, puntajes y manejo de eventos.