気ままのゲーム雑談<M>

主にゲーム関連をメインに、自分の琴線に触れる内容で書いていくブログ。

unity備忘録〜スクリプトからゲームオブジェクトへ〜

 

今回はスクリプトからゲームオブジェクトにアクセスする方法について備忘録残してきます。

この情報はかなりネット上に転がっているので、検索するとかなりヒットしてきました。

例えば下記の記事など。

albatrus.com

 

この頃の記事でいうと下記のブログが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のもの表示してしまうようです。

 

 

最後に

いろいろなアクセスの仕方ありますが、それぞれメリット、デメリットもありそうで、使いどころを考え必要がありそうですね。