unity備忘録〜スクリプトからゲームオブジェクトへ〜
今回はスクリプトからゲームオブジェクトにアクセスする方法について備忘録残してきます。
この情報はかなりネット上に転がっているので、検索するとかなりヒットしてきました。
例えば下記の記事など。
この頃の記事でいうと下記のブログが2015年9月25日ということで新しめですね。
marunouchi-tech.i-studio.co.jp
上記の記事を参考に、どうやらゲームオブジェクトを判別する方法は3つあるらしいです。
- ①GameObject.Find()を使用する
- ②GameObject.FindGameObjectWithTag()を使用する
- ③public Gameobjectとしてプロトタイプ宣言しておき、Inspectorから指定する
- ①GameObject.Find()を使用する
GameObject.Find()は引数にダブルコーテーションのシーン上に存在するゲームオブジェクトの名前渡すことで取得できるようです。ただしこのメゾッドは動作が重いらしくupdateの中に書くの推奨されないようです。
②GameObject.FindGameObjectWithTag()を使用する
unityはオブジェクトに対してタグを設定できるので、それを利用したアクセス方法になります。インスペクター上からゲームオブジェクトにタグを設定し、GameObject.FindGameObjectWithTag()使うことでそれを取得してくれるようです。
③public Gameobjectで宣言し、インスペクターから設定する方法。
この方法はfindなどに比べて動作は比較的軽いらしいですが、メモリを最初から確保したりsetActiveがfalseのもの表示してしまうようです。
最後に
いろいろなアクセスの仕方ありますが、それぞれメリット、デメリットもありそうで、使いどころを考え必要がありそうですね。