En este tutorial, aprenderás a hacer que cuando el jugador recoja un objeto, se active un efecto visual (VFX) o un sonido (SFX) para mejorar la experiencia del usuario.
✅ El objeto desaparece al tocarlo.
✅ Se reproduce un sonido de recolección.
✅ Aparece un efecto de partículas (Particle System).
🔹 1. Configurar el Objeto Recolectable
📌 Paso 1: Crear el Objeto en la Escena
- Ve a
GameObject > 3D Object > Cube (o Sphere)para crear un objeto recolectable. - Renómbralo
ObjetoRecolectable. - Cambia su color o textura para que se vea diferente.
📌 Paso 2: Agregar un Collider para Detectar Colisiones
- Selecciona el
ObjetoRecolectableen la Jerarquía. - Asegúrate de que tiene un
Collider(BoxCollider,SphereCollider, etc.). - Marca
Is Triggeren elCollider✅ para que detecte cuando el jugador lo toca.
📌 Paso 3: Darle un Tag al Jugador
- Selecciona el
Jugadoren la Jerarquía. - En el
Inspector, asegúrate de que suTagsea"Player".- Si
"Player"no existe, agrégalo enAdd Tag > + Player.
- Si
🔹 2. Añadir un Efecto Visual con Partículas
📌 Paso 4: Crear un Particle System
- En la Jerarquía (
Hierarchy), ve aGameObject > Effects > Particle System. - Renómbralo
EfectoRecolectable. - Ajusta los valores en el
Inspector:Duration:1.0(para que dure un segundo).Start Size:0.5(ajusta según tu objeto).Start Lifetime:0.5(para que desaparezca rápido).Looping: ❌ (desactivar para que no se repita).Play On Awake: ❌ (desactivar para que solo se active cuando el objeto se recoja).
- Desactiva el
EfectoRecolectableen elInspectorpara que no se reproduzca al inicio.
🔹 3. Añadir un Efecto de Sonido (AudioSource)
📌 Paso 5: Agregar un AudioSource al Objeto
- Selecciona el
ObjetoRecolectableen la Jerarquía. - Haz clic en
Add Component > AudioSource. - Asigna un sonido de recolección (
.mp3o.wav) enAudioClip. - Desactiva
Play On Awake❌ para que el sonido solo se reproduzca al recoger el objeto.
Si no tienes un sonido de recolección, puedes encontrar efectos gratis en:
🔊 FreeSound
🔹 4. Crear el Script para Activar los Efectos
📌 Paso 6: Crear el Script Recolectable.cs
- Ve a la carpeta
Scripts(Assets/Scripts). - Clic derecho > Create > C# Script.
- Nómbralo
Recolectable.csy ábrelo. - Pega este código:
using UnityEngine;
public class Recolectable : MonoBehaviour
{
public GameObject efectoRecolectable; // Referencia al efecto de partículas
private AudioSource audioSource; // Referencia al sonido
private void Start()
{
// Obtener el AudioSource
audioSource = GetComponent<AudioSource>();
// Asegurar que el efecto está desactivado al inicio
if (efectoRecolectable != null)
{
efectoRecolectable.SetActive(false);
}
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player")) // Verifica si el jugador tocó el objeto
{
Debug.Log("¡Objeto recogido!");
// Activar el efecto de partículas
if (efectoRecolectable != null)
{
efectoRecolectable.SetActive(true);
Instantiate(efectoRecolectable, transform.position, Quaternion.identity);
}
// Reproducir el sonido de recolección
if (audioSource != null)
{
audioSource.Play();
}
// Desactivar el objeto recolectable
gameObject.SetActive(false);
}
}
}
🔹 5. Conectar el Script al Objeto
📌 Paso 7: Asignar el Script al ObjetoRecolectable
- Selecciona el
ObjetoRecolectableen la Jerarquía. - Añade el script
Recolectable.cs(Add Component > Recolectable). - Arrastra el
EfectoRecolectableal campoEfectoRecolectableen elInspector.
🎯 Resultado Final
✅ Cuando el jugador toca el objeto, este desaparece.
✅ Se activa una animación de partículas (Particle System).
✅ Se reproduce un sonido (AudioSource).
✅ El objeto desaparece después de ser recogido.
🔥 ¡Pruébalo y dime si funciona! 🚀🎮

