No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Terminar los enemigos

19/20
Recursos

¿Cómo aseguramos que un enemigo se destruya tras recibir daño en Unity?

En el desarrollo de videojuegos, uno de los aspectos más emocionantes es la creación de interacciones dinámicas, como la destrucción de enemigos. Aquí vamos a aprender cómo implementar esta funcionalidad utilizando Unity. Verás que con unos sencillos pasos, lograrás que un enemigo estático, como una esfera, se destruya cuando reciba un impacto de tu potente arma virtual.

¿Cómo corregimos errores tipográficos en nuestro código?

Es importante revisar el código en busca de errores comunes, como los tipográficos, que podrían causar disfunciones. En el caso de nuestro script, la palabra "health" fue escrita incorrectamente. Simplemente, corrige esto y actualiza todos los archivos necesarios:

// Corrección de typo: "healt" se corrige a "health"
int health = 2; // Ejemplo en el script target

¿Cómo asignamos el script a nuestro objeto en Unity?

El siguiente paso es asegurarse de que el script que hemos corregido esté asignado correctamente al objeto que deseamos manipular, en este caso, la esfera que representa al enemigo. Para hacerlo:

  1. Renombra la esfera a "target" en el inspector de Unity.
  2. Asigna el script a esta esfera.

¿Por qué eliminar el logging que ya no necesitamos?

En el desarrollo de software, el uso de logs es esencial para el proceso de depuración. Sin embargo, una vez que el código está funcionando correctamente, estos logs pueden ser eliminados para limpiar el código. Aunque, en este caso, decide mantener el log de disparo por si necesitas revisarlo más tarde.

// Ejemplo de log que podría eliminarse
Debug.Log("Disparo realizado"); // Si ya no es necesario, puedes eliminar esta línea

¿Qué hacemos cuando el target recibe un impacto?

En nuestro proyecto de Unity, el objetivo es reducir la "salud" del enemigo cuando recibe un impacto. Utilizamos un sistema de colisión para determinar si el target ha sido alcanzado. El proceso estándar generalmente incluye verificar si el objeto tiene un componente específico y luego, aplicar daño si es así:

¿Cómo utilizamos GetComponent para interactuar con el target?

El uso de GetComponent permite acceder a componentes específicos de un objeto. Aquí es crucial para determinar si el impacto afecta al target:

void OnCollisionEnter(Collision collision)
{
    Target target = collision.transform.GetComponent<Target>();
    if (target != null)
    {
        target.ReceiveDamage(damageAmount);
    }
}

¿Cómo probamos el impacto en Unity?

Una vez realizado el ajuste del código, es fundamental probarlo en Unity. Activa el modo de juego y verifica si el objetivo se destruye después de un número específico de impactos. Asegúrate de que todos los scripts estén correctamente asociados y prueba diferentes escenarios.

¿Qué desafío puedes llevar a cabo para mejorar tus habilidades?

Los desafíos son una excelente manera de solidificar tus habilidades:

  • Duplica el objeto esfera (enemigo) varias veces y colócalo en diferentes posiciones de la escena.
  • Experimenta destruyéndolos todos para verificar el comportamiento del script.

¿Cómo seguir aprendiendo y ampliando tus conocimientos en Unity?

Este curso es solo el inicio de tu aventura en el desarrollo de videojuegos con Unity. A medida que avances en tu aprendizaje, considera los siguientes cursos para mejorar y personalizar aún más tus proyectos:

  • Creación de videojuegos 3D: aprenderás sobre animaciones y efectos de partículas.
  • Desarrollo de videojuegos móviles: creación orientada a juegos en plataformas móviles.
  • Creación de videojuegos VR: incluye técnicas avanzadas de 3D y realidad virtual.

Te animo a seguir explorando y probando nuevas ideas. La práctica constante y la curiosidad te llevarán a dominar el arte del desarrollo de videojuegos. Si enfrentas dificultades, no olvides buscar ayuda de la comunidad o contactar con los instructores por redes sociales. Sigue aprendiendo, divirtiéndote y aplicando tus conocimientos mientras avanzas en tus proyectos creativos.

Aportes 22

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Excelente proyecto final Richard, gracias por brindarnos tu conocimiento.

El Gran jefe final.


xD

![](

Enemigos normales:

Jefe final:

Creo que tuve un buen resultado del proyecto. Funciona todo muy bien y fue interesante.

Brillante curso que sacó lo mejor de mi. Ahora a seguir con Unity y C#.

😄

Este curso ha estado genial, me ha motivado a meterme de lleno en el mundo de los videojuegos.

Un excelente curso, maravilloso 👏

Caray q buen curso, me gusto. :v

¿Es normal que mi jugador no le afecte la gravedad?


Así quedo el resultado final, muy buen curso 😄

Este curso es perfecto para mí que tenía muchas dudas respecto a Unity y apenas estoy empezando con el motor. Gracias bro 😃

asi quedo 😄!

Este es mi “videojuego” https://youtu.be/-QStMlszrKk
Perdonad la mala calidad
P.D: El arma grande hace 2 de daño y la pequeña 1, el cubo enorme tiene 10 de vida

Me encanto esta carrera.

Genial

Excelente curso! Ricardo espero que sigas haciendo mas cursos acerca de Unity, creo que el contenido fué bastante completo. Así me quedó el proyecto:

El Destroy(gameObject) no estaba funcionando en mi version de Unity, es decir si destruia el script Target pero no destruia el objeto en escena, asi que use Destroy(this.gameObject)

Si quería agregarle todas esas cosas del sonido, animaciones, etc. Sé que con un tutorial lo voy a copiar a la perfección, pero no me parece la mejor manera de aprender, mejor iré poco a poco con los demás cursos para implementarle todo eso después, muy buen curso introductorio:).