Unity++blog.

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

噂のZenjectを試してみる

 

こちらのサイト様を参考にさせていただきました。

notargs.hateblo.jp

 

Zenjectはざっくり言うと他オブジェクトのスクリプトを簡単に参照できるというものです。参照する時のGameObject.Find(" ").GetComponent<>がいらなくなるとのことです。確かにあれは面倒くさい!

 

早速インポート!Unityバージョンは2019.1.0f2です。

 

よっしインポート終了!と思ったら、きました。

インポートしたら即エラー。バージョンがサポート外なのでしゃーないか・・

 

これはインポート時にサンプルゲーム外したらエラー解消できました。

f:id:nabesi777:20190503182640p:plain

 

上のサイト様で紹介している通りにやってみました。名前が難しそうなのでおっくうだったんですがめっちゃ簡単でした。はやく試せばよかった・・

 

 ちなみ他のシーン(アクティブな)に配置されたオブジェクトからのスクリプトも参照できるか試してみました。

 

f:id:nabesi777:20190503183520p:plain

 

 Enemyだけ別のシーンへ。

ぬるりました

f:id:nabesi777:20190503183640p:plain

 

が、できるようです。

今度はこちらのサイト様を参照↓ 3つほど方法があるみたいですが簡単なのを試しました。

yutakaseda3216.hatenablog.com

 

 

まず両方のシーンへSceneContextを置きます。

f:id:nabesi777:20190503185205p:plain

 

参照したい方(Startのほうの)のContractNameに名前を付けます。シーン名を同じStartにしました。

f:id:nabesi777:20190503185256p:plain

 

次に参照する側(Main)のSceneContextの、ParentContractNamesのところへ先ほど登録した名前を入れます。

f:id:nabesi777:20190503185455p:plain

 

これで別シーンのオブジェクトのスクリプトを参照することができました

 

 

ちなみに他シーンのオブジェクトを取得するにはこういったアセットもあります。↓

nabesi777.hatenablog.com