Unity++blog.

UnityやC#とかについて学習したことを書いてます

他のシーンのオブジェクトをインスペクターへ入れて、参照する事ができる無料アセット

他のシーンのオブジェクトをインスペクターへ入れて、参照する事ができる無料アセットのメモです。

 

例えば下記のようにStartSceneのゲームオブジェクト(Cube)をPlaySceneのインスペクターにいれて参照しようと思っても通常はできません。

f:id:nabesi777:20190414183245p:plain

 

これをできるようにします。

 

まず、こちら↓のGithubよりClone or downloadでダウンロードして、プロジェクトに加えます。(Zipファイルをダウンロードして、解凍して、フォルダをUnityのProjectへドラッグ)

github.com

 

f:id:nabesi777:20190414182132p:plain

 

 

次に参照したいオブジェクトであるCubeへ、AddComponentからGuidComponentをアタッチします。

 

f:id:nabesi777:20190414182313p:plain

 

次に参照したい方のスクリプトをですが、通常は

[SerializeField]

GameObject _cube;

のような格好でとると思いますが、GameObjectの場所をGuidReference としてあげる必要があります。↓

//型はGuidReferenceとする
[SerializeField]
GuidReference _cube;

 

こうしてやるだけで他シーンからオブジェクトを参照することができます。

f:id:nabesi777:20190414184132p:plain

 

試しにStartSceneのCubeポスをPlaySceneから取得して書き出してみました。

f:id:nabesi777:20190414184235p:plain

 

取得できました~

f:id:nabesi777:20190414184330p:plain

 

もうひとつ注意点は取得したいオブジェクトのシーンがアクティブじゃない場合はNullエラーになります。

なのでこのアセットを使用する時には、アンロードしないシーンから取得するように少し気を付ける必要があります。