ScriptableObject
La classe di Unity per i dati che vivono come file a sé stante nel progetto anziché come componente di un oggetto di gioco.
Un normale componente di Unity deve stare su un GameObject in una scena. Un ScriptableObject è invece un asset autonomo: si crea una sottoclasse, la si contrassegna con [CreateAssetMenu] e si creano istanze come file .asset nell'editor. Statistiche delle armi, tipi di nemici e alberi di dialogo diventano dati che i designer possono modificare senza aprire una scena e a cui mille oggetti possono fare riferimento senza copiarli.
Il talk di Ryan Hipple all'Unite 2017 ha reso popolare l'approccio anche per i canali di eventi e le variabili condivise. L'insidia è che le modifiche fatte in modalità play nell'editor vengono salvate in modo permanente nel file dell'asset, ma non in un gioco compilato, dove lo stesso codice si comporta diversamente.