El patrón Singleton en Unity (y en programación en general) se usa para asegurar que una clase tenga una única instancia en todo el programa y proporcionar un punto de acceso global a esa instancia. Es especialmente útil en juegos desarrollados con Unity para manejar elementos como controladores de juego, administradores de sonido o sistemas de logros, donde solo necesitas una instancia de estos componentes en todo el juego.
Aquí te dejo un ejemplo básico de cómo implementar un Singleton en Unity para un GameManager:
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }
private void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject); // Esto asegura que el objeto no se destruya al cargar una nueva escena.
}
else
{
Destroy(gameObject); // Esto destruye la nueva instancia si ya existe una.
}
}
// El resto de tu código de administración del juego va aquí.
}
Cómo funciona:
public static GameManager Instance { get; private set; }
: Define una propiedad estáticaInstance
que otros scripts pueden usar para acceder a la instancia deGameManager
.Awake()
: Es un método de Unity que se llama cuando se crea la instancia del script. Aquí, se verifica siInstance
ya está establecida. Si no es así, esta instancia se asigna aInstance
y se marca para no ser destruida si se carga una nueva escena. SiInstance
ya está establecida (lo que significa que otroGameManager
ya existe), esta nueva instancia se destruirá para evitar duplicados.
Uso del Singleton:
Puedes acceder a GameManager
desde cualquier otro script de la siguiente manera:
GameManager.Instance.MiMetodo();
Reemplaza MiMetodo
con cualquier método público que hayas definido en GameManager
.
Ventajas y precauciones:
- Ventaja: Facilita el acceso a una instancia compartida desde cualquier lugar en tu código sin necesidad de referencias directas.
- Precaución: El uso indebido de Singleton puede llevar a problemas de diseño, como dificultar las pruebas unitarias o crear dependencias ocultas entre clases. Además, mantener el estado global puede llevar a errores difíciles de rastrear si no se maneja cuidadosamente.
Es importante notar que, aunque el patrón Singleton puede ser muy útil, debe usarse con moderación y solo cuando realmente necesitas una única instancia de un objeto durante toda la ejecución del juego.

¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- Proyectos que puedes empezar para aprender a programar (Academia San Roque)
- 15 ejercicios básicos en R (con soluciones)
- 📘 5 Ejercicios Sencillos de Programación en R (con soluciones)
- Guía para Aprender a Estudiar Programación con las 10 Claves de la Autodisciplina
- Serializar una lista de personas (nombre, apellido, DNI) en Java y guardarla en un archivo binario
- Simulacro de Examen — Fundamentos de Programación (Laboratorio)
- Reflexiones en Academia SanRoque: La importancia de la motivación, el esfuerzo y el aprendizaje en la educación y la formación
- CHECK Constraint en Oracle SQL: garantiza la calidad de tus datos paso a paso
- Simulacro #4 – Examen de C++ / Estructuras de Datos
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed