ScriptableObject
Unity で、ゲームオブジェクトのコンポーネントではなく、プロジェクト内の独立したファイルとして存在するデータのためのクラスである。
通常の Unity コンポーネントは、シーン内の GameObject に載せなければならない。ScriptableObject は単独のアセットで、サブクラスを作って [CreateAssetMenu] を付け、エディタ上で .asset ファイルとしてインスタンスを作る。武器の性能、敵の種類、会話ツリーは、シーンを開かずにデザイナーが編集でき、千個のオブジェクトがコピーなしで参照できるデータになる。
Ryan Hipple の Unite 2017 の講演は、イベントチャンネルや共有変数にもこの手法を広めた。落とし穴は、エディタのプレイモード中に加えた変更がアセットファイルに恒久的に保存されることだ。ビルド済みゲームでは同じコードでもそうならない。