Si tu cursor sigue bloqueado o invisible cuando vuelves al menú en Unity, debes asegurarte de restaurarlo correctamente al cambiar de escena.
✅ El cursor se desbloquea y se hace visible en el menú.
✅ Funciona automáticamente al cambiar de escena.
✅ Evita que el cursor quede oculto después de jugar.
🔹 1. Crear un Script para Gestionar el Cursor
📌 Paso 1: Crear el Script CursorManager.cs
- Ve a la carpeta
Scripts
(Assets/Scripts
). - Clic derecho > Create > C# Script.
- Nómbralo
CursorManager.cs
y ábrelo. - Pega este código:
using UnityEngine;
using UnityEngine.SceneManagement;
public class CursorManager : MonoBehaviour
{
void Start()
{
ActualizarCursor(SceneManager.GetActiveScene().buildIndex);
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
ActualizarCursor(scene.buildIndex);
}
void ActualizarCursor(int sceneIndex)
{
if (sceneIndex == 0) // Si es la escena del menú (índice 0)
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
else // Si es cualquier otra escena (ej: dentro del juego)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
}
void OnEnable()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
}
🔹 2. Asignar el Script en Unity
📌 Paso 2: Crear un Objeto CursorController
- En la Jerarquía (
Hierarchy
), crea unGameObject
vacío. - Nómbralo
CursorController
. - Añádele el script
CursorManager.cs
(Add Component > CursorManager
).
🔹 3. Asegurar que el Menú Está en el Índice 0
Para que el script funcione correctamente, asegúrate de que el menú está en el índice 0
en Build Settings
:
- Ve a
File > Build Settings
. - Arrastra la escena del menú al primer lugar (
Índice 0
). - Asegúrate de que el resto de las escenas están en el orden correcto.
🎯 Resultado Final
✅ Cuando el jugador vuelve al menú, el cursor aparece y se desbloquea.
✅ En el juego, el cursor se oculta y bloquea automáticamente.
✅ Funciona en todas las escenas sin necesidad de ajustes adicionales.
🔥 ¡Prueba esto y dime si funciona! 🚀🎮
