En este tutorial, aprenderás a hacer que un objeto interactivo en Unity active un Canvas cuando el jugador lo toque. Esto es útil para mostrar mensajes de victoria, diálogos o eventos importantes.
✅ Funciona con OnTriggerEnter().
✅ Se puede usar para mostrar pantallas de victoria, información o efectos visuales.
✅ Fácil de implementar con cualquier GameObject.
🔹 1. Crear el Canvas a Activar
📌 Paso 1: Crear el Canvas
- Ve a
GameObject > UI > Canvasy créalo. - Renómbralo
CanvasMensaje. - En el
Inspector, cambia elCanvasScalera:UI Scale Mode: Scale With Screen SizeReference Resolution: 1920×1080
📌 Paso 2: Agregar un Panel y Texto
- Dentro del
CanvasMensaje, haz:UI > Panel→ Renómbralo"PanelMensaje".UI > Text (TextMeshPro)→ Escribe el mensaje que quieras mostrar (Ej:"¡Has encontrado un objeto especial!").
- Desactiva el
CanvasMensajeen elInspectorpara que no aparezca al inicio.
🔹 2. Crear el Script para Activar el Canvas
📌 Paso 3: Crear un Script ActivarCanvas.cs
- Ve a la carpeta
Scripts(Assets/Scripts). - Clic derecho > Create > C# Script.
- Nómbralo
ActivarCanvas.csy ábrelo. - Copia este código:
using UnityEngine;
public class ActivarCanvas : MonoBehaviour
{
public GameObject canvasMensaje; // Referencia al Canvas
private void Start()
{
// Asegurar que el Canvas está oculto al inicio
if (canvasMensaje != null)
{
canvasMensaje.SetActive(false);
}
else
{
Debug.LogWarning("⚠️ CanvasMensaje no asignado en el Inspector.");
}
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player")) // Verifica que sea el jugador
{
Debug.Log("¡El jugador ha colisionado con el objeto!");
// Activar el Canvas
if (canvasMensaje != null)
{
canvasMensaje.SetActive(true);
}
// Opcional: Desactivar el objeto tras la colisión
gameObject.SetActive(false);
}
}
}
🔹 3. Configurar el Objeto en Unity
📌 Paso 4: Asignar el Script al Objeto
- Selecciona el objeto en la Jerarquía (
Hierarchy) (Ej:ObjetoEspecialoPuerta). - En el
Inspector, haz clic enAdd Componenty agregaActivarCanvas. - Arrastra el
CanvasMensajeal campoCanvasMensajeen elInspector.
📌 Paso 5: Configurar el Collider
Para que el objeto detecte colisiones correctamente:
- Asegúrate de que el objeto tiene un
Collider(BoxCollider, SphereCollider, etc.). - Marca
Is Triggeren elInspector.
📌 Paso 6: Asegurar que el Jugador Tiene un Tag Correcto
- Selecciona el jugador en la Jerarquía.
- En el
Inspector, revisa suTag. - Si no está en
"Player", cámbialo.- Si
"Player"no existe, añádelo enAdd Tag > + Player.
- Si
🎯 Resultado Final
✅ Cuando el jugador toque el objeto, se activará el CanvasMensaje.
✅ Se mostrará un mensaje personalizado en pantalla.
✅ El objeto desaparece tras la colisión (opcional).
✅ Si el CanvasMensaje no está asignado, Unity mostrará una advertencia en la Console.
