🎮 Cómo Hacer que el Jugador Gane la Partida al Tocar un Objeto en Unity

En este tutorial, aprenderás a hacer que el jugador gane la partida cuando toque un objeto, mostrando una pantalla de victoria (CanvasVictoria).

âś… Cuando el jugador toca el objeto, aparece la pantalla de victoria.
âś… El objeto desaparece tras la colisiĂłn.
✅ Se puede añadir un botón para volver al menú o reiniciar la escena.


🔹 1. Configurar el Objeto de Victoria

📌 Paso 1: Crear el Objeto en la Escena

  1. Ve a GameObject > 3D Object > Cube (o Sphere) para crear el objeto de victoria.
  2. RenĂłmbralo ObjetoVictoria.
  3. Cambia su color o textura para que se vea diferente.

📌 Paso 2: Agregar un Collider para Detectar Colisiones

  1. Selecciona el ObjetoVictoria 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 «¡Has Ganado!».
    • 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 Victoria.cs

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

public class Victoria : 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("¡Has ganado la partida!");

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

            // Desactivar el control del jugador
            other.GetComponent<CharacterController>().enabled = false;

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

    // Método para volver al menú
    public void VolverAlMenu()
    {
        SceneManager.LoadScene(0); // AsegĂşrate de que la escena del menĂş es la escena 0 en Build Settings
    }
}

🔹 4. Conectar el Script al Objeto

📌 Paso 7: Asignar el Script al ObjetoVictoria

  1. Selecciona el ObjetoVictoria en la JerarquĂ­a.
  2. Añade el script Victoria.cs (Add Component > Victoria).
  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 Victoria > VolverAlMenu().

🎯 Resultado Final

âś… Cuando el jugador toca el ObjetoVictoria, aparece el PanelVictoria.
âś… El objeto desaparece tras la colisiĂłn.
âś… El jugador deja de moverse.
✅ Se puede añadir un botón para volver al menú.

🔥 ¡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