Saltar al contenido

🎮 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ú.

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