Singleton in Unity - C#

Singleton in Unity

Le basi e alcune implementazioni di questo importante design pattern.

Il Singleton è un design patter molto utile quando la stessa classe debba essere riutilizzata per la durata dell’applicazione. Un esempio di utilizzo potrebbero essere un GameManager responsabile del calcolo dei punteggi o un AudioManager per la gestione di musiche ed effetti sonori.

Ad una prima occhiata l’argomento può risultare abbastanza complesso, ma è molto importante nell’ambito del game development. Vale quindi la pena approfondire l’argomento! 😀

Implementazione base

Ecco il nostro primo Singleton! Già così potrebbe andare, ma ci sono alcuni inconvenienti:

  1. E’ necessario “agganciare” lo script ad un GameObject nella hierarchy
  2. Non sappiamo l’ordine di chiamata degli Awake e rischiamo di accedere ai metodi del Singleton prima ancora che venga instanziato
  3. In caso volessimo usare lo script, dovremmo rinominarlo e modificarlo per ogni nuova classe

Vediamo quindi come risolvere i punti critici.

Fix dei punti 1 e 2

Per prima cosa faremo in modo di istanziare il Singleton nel momento in cui venga richiesto per la prima volta. In caso non fosse ancora presente, creeremo dapprima un GameObject a cui successivamente agganciare il nostro Singleton.

Non dobbiamo più preoccuparci di agganciare lo script ad un GameObject nella hierarchy (sarà lui stesso a provvedere) e nemmeno di eventuali Null Reference Exception.

Non ci resta che renderlo il più riutilizzabile possibile. Via con l’ultimo giro!

Singleton Generico (o anche detto fix del punto 3)

In questo ultimo snippet cercheremo di rendere il nostro pattern riutilizzabile senza dover “rittoccare” ogni volta.

Da ora in avanti non avremo più bisogno di duplicare e modificare ogni volta il nostro codice, ma basterà che la nostra nuova classe erediti dalla classe precedente. Così:

Conclusioni

Se siete arrivati fin qui, congratulazioni! Sapete padroneggiare una delle tecniche più usate nel mondo del game development. Fatene buon uso!

Alla prossima puntata!

bloomingyoARway Store

Blooming yoAR way

Ci vediamo doppio! In occasione dell'edizione 2018 del Blooming festival, Urkin ha rilasciato non una, ma ben due app dedicate all'evento, sia per Android che iOS. Per vivere il Blooming al meglio! Fiorisci a modo tuo!
LEGGI

Urkin @ Blooming Festival

Urkin sarà main sponsor tecnico della prossima edizione del Blooming Festival, in programma il 22 e il 23 Giugno 2018 a Pergola (PU).
LEGGI
Rinascimento in AR

Rinascimento in AR

Iniziano due nuovi percorsi didattici a Palazzo Ducale di Urbino, entrambi con il supporto della realtà aumentata. Un progetto di Urkin in collaborazione con Opera Coop e la Galleria Nazionale delle Marche.
LEGGI
RES PublicA versione 2.1

Disponibile RES PublicA versione 2.1

E' finalmente disponibile la versione 2.1 di RES PublicA! Venite a scoprire tutte le novità!
LEGGI
Shares