PrefabやScene内のインスタンスをSerialzieFieldで参照する - Katsuya100/SceneLayer-Trial GitHub Wiki

Prefab/Scene/ScriptableObjectのインスタンスを跨いで参照を持ちたい場合、CrossReference クラスを利用します。
この手法は、ロードする予定のPrefabのインスタンスを、Layerに参照させる際にも有効です。

[SerializeField]
CrossReference<GameObject> _go;

すると、インスペクター上ではこのように表示されます。
image

このフィールドにオブジェクトを挿入すると
自動的に、 CrossReferenceRegister コンポーネントが生成され、
インスタンスが登録されます。
image

実行すると対象のオブジェクトのインスタンス化以降に、オブジェクト参照を取得できるようになります。

注意点

シーンのGameObjectを参照しており、また該当のシーンが開かれていない場合、Inspector上ではシーンの参照とGlobalObjectIDが表示されます。
image

ScriptableObjectの場合

ScriptableObjectをCrossReferenceに登録する場合、下記のように、メンバを設定しておく必要があります。

[SerializeField]
CrossReferenceRegisterObject _crossReferenceRegister;

その後、対象ScriptableObjectのInspectorを開き、
[Register]ボタンをクリックしておきます。
image
これで、ScriptableObjectがロードされたときに、自動的に参照が確保されるようになります。

⚠️ **GitHub.com Fallback** ⚠️