【Unityで学ぶC#プログラミング⑮】GetComponent関数

プログラミング初心者向けのUnityで学ぶC#講座。
初心者にもわかりやすく、なるべく専門的な用語をなくして簡単に説明します。
今回は「GetComponent関数」についてです。
この記事を読み終えると以下のことが分かるようになります。
GetComponent関数の使い方
GetComponentInChildren関数の使い方
今回は初学者の人には少し難しいかもしれませんが、GetComponent関数はUntiyでゲーム開発する上で非常に重要です。
少しずつで良いので覚えていきましょう。
それではさっそく解説していきます。
GetComponentとは
GetComponentの前に、まずComponentについて説明しましょう。
Unityの要素すべてはcomponentという単位で作られています。
いままで紹介してきたCollider、Rigidbodyやスクリプトもすべてcomponentです。
このcomponentをゲームオブジェクトにアタッチして、さまざまなものができています。
例えばPlayerというゲームオブジェクトに3Dのモデリング、当たり判定のColliderや動かすためのRigidbodyのcomponentをアタッチするといった感じです。
このさまざまなcomponentをスクリプトからアクセスし、実行するのがGetComponentになります。
つまり、GetComponentを利用すると、下の画像のようなインスペクターの値をスクリプトから編集できるようになります。
GetComponent関数の使い方
説明を読んでいるだけではイメージし辛いので、実際にコードを書いて実行してみましょう。
まず3DオブジェクトCubeをシーンに追加して、Rigidbodyをアタッチします。
Rigidbody は下記のように設定しました。

このまま実行しても何もおきません。Cubeのオブジェクトは止まったままです。
下記のスクリプトを追加して、GetComponentでRgidbodyを取得しVelocityでオブジェクトを動かします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class testGetcom : MonoBehaviour { Rigidbody rb; // Start is called before the first frame update void Start() { rb = this.GetComponent<Rigidbody>();//GetComponentでRigidbodyを取得し代入 rb.velocity = new Vector3(1, 0, 0); } } |
実行して確認してみましょう。
オブジェクトが動くのが確認できました。
GetComponentInChildren関数
次に子のオブジェクトにアタッチされた Rigidbody を取得し動かしてみましょう。
まず、下記のオブジェクトを用意します。

親のオブジェクト「Parent」は空のゲームオブジェクト、その子供のオブジェクト「Cube」から Rigidbody を取得し動かします。
親オブジェクトに下記のスクリプトをアタッチします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class testGetChild : MonoBehaviour { Rigidbody rb; // Start is called before the first frame update void Start() { rb = GetComponentInChildren<Rigidbody>();//子オブジェクトのcomponentを取得し代入 rb.velocity = new Vector3(1, 0, 0); } } |
また子のオブジェクトが複数ある場合は、一番最初のオブジェクトがgetcomponentInChildrenで取得されます。
実行して確認してみましょう。
子のオブジェクトからRigidbodyが取得され、オブジェクトを動かすことができました。
今回の所は以上となります。今回は難しかったので、よく理解できなかった人もいるかも知れませんが、Unityでゲーム作成をしていくうちに次第に覚えていきます。あせらず少しずつ続けていきましょう。
最後まで読んでいただきありがとうございました。
おすすめ記事【現役Unityエンジニアが厳選】Unityを学ぶのにおすすめのプログラミングスクール3選
おすすめのUnityスクール
Unityが学べるおすすめのプログラミングスクールはTECH STUDIAMになります。
理由はゲーム開発に特化したプログラミングスクールであり、2ヶ月で9万円の授業料で他のプログラミングスクールに比べても安いからです。
興味のある方は、無料相談してみるのをオススメます。
ゲーム制作を学べるオンラインスクール TECH STUDIAM