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
ObjetoRecolectable
en la Jerarquía. - Asegúrate de que tiene un
Collider
(BoxCollider
,SphereCollider
, etc.). - Marca
Is Trigger
en elCollider
✅ para que detecte cuando el jugador lo toca.
📌 Paso 3: Darle un Tag
al Jugador
- Selecciona el
Jugador
en la Jerarquía. - En el
Inspector
, asegúrate de que suTag
sea"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
EfectoRecolectable
en elInspector
para que no se reproduzca al inicio.
🔹 3. Añadir un Efecto de Sonido (AudioSource
)
📌 Paso 5: Agregar un AudioSource
al Objeto
- Selecciona el
ObjetoRecolectable
en la Jerarquía. - Haz clic en
Add Component > AudioSource
. - Asigna un sonido de recolección (
.mp3
o.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.cs
y á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
ObjetoRecolectable
en la Jerarquía. - Añade el script
Recolectable.cs
(Add Component > Recolectable
). - Arrastra el
EfectoRecolectable
al campoEfectoRecolectable
en 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! 🚀🎮
