コードの型
変数に名前を付けるとき、「どんな種類のデータを入れる箱なのか」を指定する部分です。
C#
// 「Rigidbody2Dという種類のデータを扱います」という宣言
private Rigidbody2D rb;
コードの仕組み
Unityのオブジェクトにこのパーツ(コンポーネント)を追加すると、以下の物理法則が自動で働きます。
- 重力: 何もしなくても下に落ちるようになります。
- 衝突: 他の物体(コライダー付き)とぶつかると跳ね返ったり、止まったりします。
- 力(Force): 「右に力を加える」「上に飛ばす」といった物理的な計算が可能になります。
活用例(物理でキャラクターを動かす)
Translate(テレポート移動)ではなく、AddForce を使って「押す力」でキャラを動かすときによく使います。
C#
void Start()
{
// このオブジェクトのRigidbody2Dを取得して rb に入れる
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
// 上方向に力を加えてジャンプさせる
rb.AddForce(Vector2.up * 5.0f, ForceMode2D.Impulse);
}
}
その他(重要ポイント)
- 2D専用:
Rigidbody2Dは2Dゲーム用です。3Dゲームの場合はRigidbodyを使います(2Dと3Dは別物なので混ぜないようにしましょう)。 - なぜ
rbという変数名にするの?: プログラマー界隈の慣習です。Rigidbody2Dの頭文字からrbと略すのが最も一般的で、コードが見やすくなります。 - GetComponentが必要: スクリプトの冒頭で
private Rigidbody2D rb;と書いても、まだ「空っぽの箱」です。Start()の中でGetComponent<Rigidbody2D>()を書くことで、初めて「このオブジェクトにくっついている本物のパーツ」と接続されます。
初心者向けまとめ
Rigidbody2D は、「このオブジェクトに『物理法則』という魂を吹き込むためのスイッチ」です。
- これを付けると、オブジェクトが「重さ」を持つようになり、勝手に落ちたり、ぶつかったりできるようになります。
- プログラミング側からは、このパーツを操作することで「もっと強く蹴る」「回転させる」「重力を無効化する」といった物理的な命令を出せるようになります。

コメント