ScriptableObject
Klasa Unity na dane, które żyją jako osobny plik w projekcie, a nie jako komponent na obiekcie gry.
Zwykły komponent Unity musi siedzieć na GameObject w scenie. ScriptableObject to samodzielny asset: dziedziczysz po nim, oznaczasz atrybutem [CreateAssetMenu] i tworzysz instancje jako pliki .asset w edytorze. Statystyki broni, typy przeciwników i drzewa dialogowe stają się danymi, które projektanci mogą edytować bez otwierania sceny i do których tysiąc obiektów może się odwoływać bez kopiowania.
Wystąpienie Ryana Hipple’a na Unite 2017 spopularyzowało to podejście także dla kanałów zdarzeń i współdzielonych zmiennych. Pułapka: zmiany wprowadzone w trybie odtwarzania w edytorze zapisują się na stałe w pliku assetu — ale nie w zbudowanej grze, gdzie ten sam kod zachowuje się inaczej.