Configurar vida del enemigo y daño del arma

Clase 26 de 60Curso Avanzado de Creación de RPGs con Unity

Resumen

Implementa la vida del enemigo y el daño del arma de forma clara y escalable. Con un único script de vida genérico y un ajuste mínimo en el script del arma, los enemigos dejan de morir de un solo golpe y pasan a gestionar vida máxima y vida actual como el protagonista.

¿Cómo configurar la vida del enemigo con un script genérico?

El mismo script de gestión de vida que se usa en el protagonista sirve para el enemigo porque es independiente del rol del objeto. No está ligado a “personaje” o “enemigo”, solo maneja números y su representación en pantalla.

  • Asigna el health manager al prefab del enemigo.
  • Define la vida máxima del enemigo, por ejemplo, veinte puntos.
  • Todos los enemigos instanciados heredan ese valor por defecto.
  • El cálculo y la visualización de la vida se actualizan automáticamente.

Claves prácticas: - Usa variables claras: vida máxima y vida actual. - Mantén el health manager genérico para reutilizarlo en cualquier objeto que reciba daño.

¿Cómo hacer daño con el arma desde el script weapon damage?

El personaje solo hace daño cuando su arma impacta; el enemigo, en cambio, puede dañar con todo su cuerpo. En el script del arma, sustituye la destrucción directa del objeto por una llamada al sistema de vida.

  • Crea una variable pública para el daño del arma: public int damage.
  • En la colisión, busca el health manager del objeto impactado.
  • Invoca el método de daño con el valor del arma.

Ejemplo mínimo en C#:

public int damage;

// Dentro de la lógica de colisión correspondiente
collision.gameObject
         .GetComponent<HealthManager>()
         .DamageCharacter(damage);

Detalles importantes: - Sustituye cualquier Destroy(collision.gameObject) por la disminución de vida. - Ajusta el daño del arma desde el editor para equilibrar la experiencia.

¿Qué valores y ajustes mejoran la experiencia de juego?

El equilibrio inicial facilita probar el flujo de combate y ajustar sensaciones.

  • Valor inicial sugerido: enemigo con 20 de vida y espada con 10 de daño.
  • Con estos números, el enemigo muere en dos golpes, lo que valida el ciclo básico de combate.
  • Aún sin animación de daño, el enemigo debe destruirse tras recibir impactos suficientes.

Sugerencias de diseño y colisión: - Si el arma no se mueve, es más difícil acertar sin que el jugador reciba daño. - Amplía el área del polygon collider del arma para facilitar el impacto cuando sea necesario. - Añade animaciones ligeras: movimiento del jugador, ataque del arma y retroalimentación al recibir daño.

Buenas prácticas de organización: - Separa responsabilidades en scripts distintos: vida, daño del arma y comportamiento del enemigo. - Mantén nombres consistentes como health manager, weapon damage, damage, DamageCharacter y GetComponent. - Ajusta parámetros en el prefab para aplicar cambios a todas las instancias.

¿Te gustaría ver ejemplos de configuración de colisiones o animaciones para el impacto? Comenta tus dudas y comparte cómo estás equilibrando daño y vida en tu proyecto.