Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Agregar Partículas | Mejorar el Juego
Juego de Lucha en Unity
course content

Contenido del Curso

Juego de Lucha en Unity

Juego de Lucha en Unity

1. Sistema de Animación de Unity
2. Comportamiento del Jugador
3. Comportamiento del Enemigo
4. Mejorar el Juego
5. Mejorar el Juego de Flappy Bird

bookAgregar Partículas

Explicación de los Cambios en el Método Update

El método Update en el script del enemigo ahora incluye lógica para actualizar el gestor de estados, asegurar que el enemigo mire al jugador y manejar un caso específico donde el enemigo está en un DeathState. Esta lógica se agregó para evitar que el enemigo continúe mirando al jugador después de haber muerto.

Componentes del Método

Actualización del StateManager

stateManager.UpdateStates(Time.deltaTime)

Esta línea actualiza el gestor de estados, pasando el tiempo transcurrido desde el último fotograma (Time.deltaTime). Asegura que el estado actual se actualice correctamente en cada fotograma.

Verificación de DeathState

if (stateManager.GetCurrentState() is DeathState) return;

Esta línea verifica si el estado actual es DeathState. Si el enemigo está en el DeathState, el método regresa temprano, evitando cualquier actualización adicional para mirar al jugador u otros comportamientos.

Mirando al Jugador

Las siguientes líneas aseguran que el enemigo siempre mire al jugador:

scale.x = transform.position.x > player.position.x ? -1 : 1;

Esta línea verifica si la posición x del enemigo es mayor que la posición x del jugador:

  • Si es verdadero, scale.x se establece en -1, haciendo que el enemigo mire a la izquierda;
  • Si es falso, scale.x se establece en 1, haciendo que el enemigo mire a la derecha.

transform.localScale = scale;

Esta línea aplica la escala actualizada al transform del enemigo, asegurando que mire en la dirección correcta.

Por Qué Lo Hicimos Así

Manejo del Estado de Muerte

Agregar la comprobación para DeathState asegura que el enemigo no continúe actualizando su comportamiento u orientación después de haber muerto. Esto es crucial para mantener la lógica del juego y prevenir comportamientos inesperados después de que se supone que el enemigo está inactivo.

Lógica Centralizada

Al mover la lógica orientada al jugador al método Update, centralizamos este comportamiento, reduciendo la redundancia y mejorando el mantenimiento del código. Asegura que el enemigo siempre mire al jugador independientemente del estado actual, lo que simplifica el código específico del estado.

Explicación del Manejo de la Muerte del Enemigo

La clase DeathState es un estado específico que maneja el comportamiento del enemigo cuando muere.

Por Qué Lo Hicimos Así

Manejo del Comportamiento de Muerte

La clase DeathState gestiona específicamente el comportamiento del enemigo cuando muere, asegurando que la animación de muerte se reproduzca y que el estado se marque como terminado.

Integración de Animación

Usar parámetros del animador asegura que la animación de muerte esté correctamente sincronizada con el cambio de estado, proporcionando una experiencia fluida y realista.

Aparición de Partículas al Morir el Enemigo

Este código muestra cómo el enemigo maneja su muerte cuando su salud llega a cero. Transiciona al DeathState y reproduce un efecto de partículas de muerte.

Desglose del Código

Verificación de Salud

if (health <= 0)

Esta condición verifica si la salud del enemigo ha caído a cero o menos.

Transición a DeathState

stateManager.ChangeState(deathState)

Esta línea transiciona al enemigo al DeathState usando el StateManager.

Instanciar Partículas de Muerte

var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity)

Esta línea crea una instancia del efecto de partículas de muerte en la posición del enemigo. deathParticles es un prefab que contiene el sistema de partículas para el efecto de muerte. Quaternion.identity asegura que las partículas no tengan rotación.

Reproducir Partículas de Muerte

deathParticle.Play()

Esta línea reproduce el efecto de partículas instanciado.

Destruir Partículas de Muerte

Destroy(deathParticle.gameObject, 5)

Esta línea programa la destrucción del GameObject del efecto de partículas después de 5 segundos, asegurando que no persista indefinidamente en el juego.

Por Qué Lo Hicimos Así

Gestión de Estados: Transicionar al DeathState asegura que el comportamiento de muerte del enemigo se gestione adecuadamente y que se ejecute cualquier lógica específica para el estado de muerte.

Efectos Visuales: Reproducir un efecto de partículas de muerte proporciona retroalimentación visual al jugador, mejorando la experiencia del juego.

¿Qué sucede con el sistema de partículas cuando la salud es menor o igual a cero?

¿Qué sucede con el sistema de partículas cuando la salud es menor o igual a cero?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 1
some-alt