Corrección de bugs: recarga y audio en armas Unity

Clase 18 de 33Curso de VR con Unity

Resumen

La configuración de armas en Unity mejora al corregir dos fallos críticos: la recarga automática de la magia tras disparar y el cambio correcto de audio. Aquí verás cómo aplicar Invoke, reutilizar un clip con AudioSource y evitar cargas en tiempo real desde Resources, asegurando un comportamiento fluido entre la espada y la vara.

¿Cómo se soluciona la recarga automática de la magia?

Tras disparar la bola de fuego, la vara debía recargar una nueva. El olvido fue no invocar el método de recarga. La solución es llamar a Invoke para ejecutar el método Load Magic usando el tiempo de enfriamiento de la magia.

  • Usa la variable Magic Cooldown Time para sincronizar la recarga.
  • Load Magic destruye la bala anterior y genera una nueva en la punta de la vara.
  • Si quieres disparos más rápidos, baja Magic Cooldown Time.
// Tras disparar la bola de fuego
Invoke("LoadMagic", MagicCooldownTime);

¿Qué método llama a la recarga con invoke?

  • Se llama a Load Magic mediante Invoke tras configurar todo el disparo.
  • El valor de espera es Magic Cooldown Time: se alinea con el tiempo de recarga de la magia.

¿Cómo se corrige el cambio de audio en las armas?

El problema: el sonido del fuego ardiendo seguía activo y no cambiaba al disparo. La mejora es separar la lógica y reproducir un clip secundario ya preparado. Crea un public AudioClip para el disparo, configúralo en el player desde el inspector y haz que la AudioSource lo reproduzca sin cargar desde Resources.

  • Declara un public AudioClip fireClip y asígnalo en el inspector.
  • Evita acceder a la carpeta Resources: es costoso en tiempo real.
  • Reutiliza la componente AudioSource del objeto y reproduce el fireClip cargado previamente.
public AudioClip fireClip; // asignar en el inspector

// En el momento del disparo
var audioSource = GetComponent<AudioSource>();
audioSource.clip = fireClip;
audioSource.Play();

¿Por qué evitar cargar desde resources en tiempo real?

  • Es una operación pesada y puede fallar en ejecución en caliente.
  • Con un AudioClip público, arrastras el sonido (por ejemplo, el disparo de fuego) al campo desde el inspector y listo.
  • La AudioSource reproduce de inmediato el sonido correcto al disparar.

¿Qué queda listo y qué falta por preparar?

  • Sistema de armas preparado: espada y fuego funcionando con recarga y audio correctos.
  • Próximos ajustes técnicos: que las armas hagan daño efectivo.
  • La bola de fuego ya tiene collider configurado.
  • Faltan colliders para la espada y para recibir golpes con el escudo.

¿Te gustaría ajustar el cooldown de la magia o cambiar el diseño sonoro del disparo? Comparte tu experiencia y dudas en los comentarios.