PrefabやScene内のインスタンスをSerialzieFieldで参照する - Katsuya100/SceneLayer-Trial GitHub Wiki
Prefab/Scene/ScriptableObjectのインスタンスを跨いで参照を持ちたい場合、CrossReference
クラスを利用します。
この手法は、ロードする予定のPrefabのインスタンスを、Layerに参照させる際にも有効です。
[SerializeField]
CrossReference<GameObject> _go;
すると、インスペクター上ではこのように表示されます。
このフィールドにオブジェクトを挿入すると
自動的に、 CrossReferenceRegister
コンポーネントが生成され、
インスタンスが登録されます。
実行すると対象のオブジェクトのインスタンス化以降に、オブジェクト参照を取得できるようになります。
シーンのGameObjectを参照しており、また該当のシーンが開かれていない場合、Inspector上ではシーンの参照とGlobalObjectIDが表示されます。
ScriptableObjectをCrossReferenceに登録する場合、下記のように、メンバを設定しておく必要があります。
[SerializeField]
CrossReferenceRegisterObject _crossReferenceRegister;
その後、対象ScriptableObjectのInspectorを開き、
[Register]ボタンをクリックしておきます。
これで、ScriptableObjectがロードされたときに、自動的に参照が確保されるようになります。