今回も「Unityではじめる2Dゲーム作り徹底ガイド」から勉強したことで、これは便利だと思っていることを紹介します。(P300ぐらいまで) 今回は、GameObjectやTransformを取得する方法です。 以前も勉強をしたのですが、すっかり忘れているので、簡単にブログに書いて振り返っていきます。
Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦 大野 功二 SBクリエイティブ 売り上げランキング : 5252 Amazonで詳しく見る |
GameObjectやTransformを取得する
Hirearchyに配置されているオブジェクトを取得します。
GameObject.Find()
GameObject.Find()を利用すれば、簡単にオブジェクトを取得できます。 [c] player = GameObject.Find("Player"); [/c]
注意点としては、アクティブなオブジェクトしか取得できません。
transform.Find
同じFindで、「transform.Find()」があります。 これは、GameObjectではなく、Transformを取得できます。 条件は以下の2点です。
- 子オブジェクトのTransformを取得する
- アクティブ、インアクティブ関係なく取得できる
コードは以下のようになります。 [c]
Transform _trans = transform.Find("Hogehoge");
[/c]
オブジェクトを取得
GameObject.Find()のように、オブジェクトを取得する場合は以下のようになります。 [c]
GameObject _obj = transform.gameObject;
[/c]
コンポーネントを取得
これを使えば、その他のコンポーネントも取得ができます。 [c]
BoxCollider2D boxCol2D = transform.Find("Hogehoge").GetComponent
boxCol2D.transform.gameObject.SetActive(false);
[/c]
最後に
この2D本は、個人的にとてもむずかしいので理解できていない部分もありますが、ちょっとづつ進めています。 Unity使う、使わないは別にして、ゲーム作りに使えそうのノウハウが色々あるのでとても勉強になります。 GUI部分が、最新のUnityと違うやり方なので、この部分はまた別途勉強をしないといけないなあと感じます。