【Unity/C#】Rigidbody2D(物理演算パーツ)の基本と仕組み

Unityコード専用検索

コードの型

変数に名前を付けるとき、「どんな種類のデータを入れる箱なのか」を指定する部分です。

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 は、「このオブジェクトに『物理法則』という魂を吹き込むためのスイッチ」です。

  • これを付けると、オブジェクトが「重さ」を持つようになり、勝手に落ちたり、ぶつかったりできるようになります。
  • プログラミング側からは、このパーツを操作することで「もっと強く蹴る」「回転させる」「重力を無効化する」といった物理的な命令を出せるようになります。

コメント

タイトルとURLをコピーしました