ScriptableObject
Unitys klass för data som lever som egna filer i projektet i stället för som komponenter på ett spelobjekt.
En vanlig Unity-komponent måste sitta på ett GameObject i en scen. En ScriptableObject är en fristående asset: man ärver klassen, märker den med [CreateAssetMenu] och skapar sedan instanser som .asset-filer i editorn. Vapenstatistik, fiendetyper och dialogträd blir då data som designers kan redigera utan att röra en scen, och som tusen objekt kan referera till utan att kopiera.
Ryan Hipples föredrag på Unite 2017 gjorde mönstret populärt även för händelsekanaler och delade variabler. Fällan är att ändringar som görs i spelläge i editorn sparas permanent i assetfilen — men inte i ett byggt spel, där samma kod beter sig annorlunda.