Saltar al contenido

🎮 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! 🚀🎮

Etiquetas:

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 !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

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