コードの型
「自分自身(または他のオブジェクト)にくっついている、特定のコンポーネント」を取得します。
C#
// 「自分自身にくっついているRigidbody2D」を探して、変数 rb に入れる
rb = GetComponent<Rigidbody2D>();
// 「自分自身にくっついているTextMeshProUGUI」を探して、変数 text に入れる
scoreText = GetComponent<TextMeshProUGUI>();
コードの仕組み
Unityのオブジェクトは、「箱(GameObject)」の中に「機能(コンポーネント)」を詰め込んで構成されています。 * コンポーネントの山: 1つのオブジェクトには、Transform や SpriteRenderer、Rigidbody2D など、たくさんの機能が重なり合ってくっついています。
- 特定の機能へのアクセス: プログラムから「このオブジェクトのRigidbody2Dをいじりたい!」と思っても、そのままではどれがRigidbody2Dかわかりません。そこで
GetComponentを使うと、Unityが「ああ、この箱の中のこれのことだね」と、目的のパーツをピンポイントで引っ張り出してくれます。
活用例
プログラムの起動時(Start)に、「このオブジェクトの機能」をセットアップする時が最も多いです。
C#
private Rigidbody2D rb;
void Start()
{
// このスクリプトがくっついている箱の中から、Rigidbody2Dという名前の機能を探す
rb = GetComponent<Rigidbody2D>();
}
その他(重要ポイント)
<T>の意味:GetComponent<Rigidbody2D>()の< >の部分は、「ジェネリクス」と呼ばれます。「どの種類のパーツが欲しいか?」を指定する枠だと思ってください。- 「探せなかったら?」: もしそのオブジェクトに
Rigidbody2Dが付いていないのにGetComponentを使うと、エラー(null参照)が出ます。必ずパーツが付いているか確認してから使いましょう。 - 自分以外も探せる: 別のオブジェクトを操作したい場合も使えます。C#
// playerというオブジェクトにくっついているRigidbody2Dを探す Rigidbody2D playerRb = player.GetComponent<Rigidbody2D>();
まとめ:GetComponent は「道具箱から道具を取り出す」命令
GetComponent を使う流れは、まさに「道具箱(GameObject)から特定の工具(コンポーネント)を取り出す」作業と同じです。
- 道具箱を特定する(自分自身なら省略可能)。
GetComponent<欲しい工具の名前>()を叫ぶ。- 取り出した工具を変数(
rbなど)に入れて、いつでも使えるようにする。
「プログラムで物理を操作したい」「プログラムで文字を変えたい」と思ったら、まずはこの GetComponent でそのパーツを自分の手元に呼び出す、というのがUnity開発の基本中の基本ルールです。

コメント