🎮 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   
Privacidad