🎮 Cómo Hacer que un Objeto Recolectable Active una Pantalla de Victoria en Unity

En este tutorial, aprenderás a hacer que un objeto recolectable (por ejemplo, una llave, una moneda o un artefacto) active una pantalla de victoria (Canvas con «¡Ganaste!») cuando el jugador lo recoja.

âś… Cuando el jugador toca el objeto, aparece un PanelVictoria.
✅ El objeto recolectable desaparece después de ser recogido.
âś… Se puede agregar un botĂłn para reiniciar la escena o volver al menĂş.


🔹 1. Crear 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 la Pantalla de Victoria (CanvasVictoria)

📌 Paso 4: Crear el Canvas

  1. Ve a GameObject > UI > Canvas y créalo.
  2. RenĂłmbralo CanvasVictoria.
  3. En el Inspector, cambia el CanvasScaler a:
    • UI Scale Mode: Scale With Screen Size
    • Reference Resolution: 1920×1080

📌 Paso 5: Agregar un Panel con Texto

  1. Dentro del CanvasVictoria, haz:
    • UI > Panel → RenĂłmbralo "PanelVictoria".
    • UI > Text (TextMeshPro) → Escribe «¡Ganaste!».
    • UI > Button - TextMeshPro → RenĂłmbralo BotonVolverMenu.
  2. Cambia el texto del botĂłn a "Volver al MenĂş".
  3. Desactiva CanvasVictoria en el Inspector para que no aparezca al inicio.

🔹 3. Crear el Script para la Victoria

📌 Paso 6: Crear el Script ObjetoRecolectable.cs

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

public class ObjetoRecolectable : MonoBehaviour
{
    public GameObject canvasVictoria; // Referencia al Canvas de Victoria

    private void Start()
    {
        // Asegurar que el CanvasVictoria está desactivado al inicio
        if (canvasVictoria != null)
        {
            canvasVictoria.SetActive(false);
        }
        else
        {
            Debug.LogWarning("⚠️ Canvas de Victoria no asignado en el Inspector.");
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player")) // Verifica si el jugador tocĂł el objeto
        {
            Debug.Log("¡Objeto recogido! Activando pantalla de victoria.");

            // Activar el Canvas de Victoria
            if (canvasVictoria != null)
            {
                canvasVictoria.SetActive(true);
            }

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

🔹 4. Conectar el Script al Objeto

📌 Paso 7: Asignar el Script al ObjetoRecolectable

  1. Selecciona el ObjetoRecolectable en la JerarquĂ­a.
  2. Añade el script ObjetoRecolectable.cs (Add Component > ObjetoRecolectable).
  3. Arrastra el CanvasVictoria al campo CanvasVictoria en el Inspector.

📌 Paso 8: Conectar el Botón «Volver al Menú»

  1. Selecciona el BotonVolverMenu en la JerarquĂ­a.
  2. En el Inspector, busca la secciĂłn Button > OnClick().
  3. Haz clic en + para agregar una nueva acciĂłn.
  4. Arrastra el CanvasVictoria al campo vacĂ­o.
  5. En la lista desplegable, selecciona ObjetoRecolectable > VolverAlMenu().

🎯 Resultado Final

âś… Cuando el jugador toca el objeto recolectable, aparece el PanelVictoria.
✅ El objeto desaparece después de ser recogido.
✅ Se puede añadir un botón para volver al menú.

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