🎮 Cómo Hacer que un Objeto Desaparezca Tras Recogerlo en Unity

En este tutorial, aprenderás a hacer que un objeto desaparezca cuando el jugador lo recoja, utilizando OnTriggerEnter() para detectar la colisión.

✅ Cuando el jugador toca el objeto, este desaparece.
✅ Puede activarse una acción extra (como sumar puntos o mostrar un mensaje).
✅ Fácil de implementar en cualquier objeto recolectable.


🔹 1. Configurar el Objeto Recolectable

📌 Paso 1: Crear el Objeto en la Escena

  1. Ve a GameObject > 3D Object > Cube (o Sphere) para crear un objeto recolectable.
  2. Renómbralo ObjetoRecolectable.
  3. Cambia su color o textura para que se vea diferente.

📌 Paso 2: Agregar un Collider para Detectar Colisiones

  1. Selecciona el ObjetoRecolectable en la Jerarquía.
  2. Asegúrate de que tiene un Collider (BoxCollider, SphereCollider, etc.).
  3. Marca Is Trigger en el Collider ✅ para que detecte cuando el jugador lo toca.

📌 Paso 3: Darle un Tag al Jugador

  1. Selecciona el Jugador en la Jerarquía.
  2. En el Inspector, asegúrate de que su Tag sea "Player".
    • Si "Player" no existe, agrégalo en Add Tag > + Player.

🔹 2. Crear el Script para Desaparecer el Objeto

📌 Paso 4: Crear el Script Recolectable.cs

  1. Ve a la carpeta Scripts (Assets/Scripts).
  2. Clic derecho > Create > C# Script.
  3. Nómbralo Recolectable.cs y ábrelo.
  4. Pega este código:
using UnityEngine;

public class Recolectable : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player")) // Verifica si el jugador tocó el objeto
        {
            Debug.Log("¡Objeto recogido!");

            // Desactivar el objeto recolectable
            gameObject.SetActive(false);

            // Opcional: Sumar puntos al jugador o activar una animación
            // GameManager.instance.SumarPuntos(10);
        }
    }
}

🔹 3. Conectar el Script al Objeto

📌 Paso 5: Asignar el Script al ObjetoRecolectable

  1. Selecciona el ObjetoRecolectable en la Jerarquía.
  2. Añade el script Recolectable.cs (Add Component > Recolectable).

🔹 4. Opcional: Destruir el Objeto en Lugar de Desactivarlo

Si en lugar de desactivar el objeto (SetActive(false)) prefieres destruirlo completamente, cambia esta línea:

gameObject.SetActive(false);

Por esta otra:

Destroy(gameObject);

🔹 Diferencias:

  • SetActive(false): El objeto desaparece pero sigue en la escena (se puede volver a activar).
  • Destroy(gameObject): El objeto se elimina completamente de la escena.

🎯 Resultado Final

✅ Cuando el jugador toca el objeto, este desaparece.
✅ Puede activarse una acción extra (sumar puntos o animación).
✅ Funciona tanto con SetActive(false) como con Destroy().

🔥 ¡Pruébalo y dime si funciona! 🚀🎮

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad