YouTubeでプログラミングを教えていますYouTube

UnityのRigidbody(リジッドボディー)とCollider(コライダー)って何だ?

  • URLをコピーしました!
目次

Rigidbodyとはズバリ物理的な反応のこと

Unity

リ・・・
…て…
リジッドボディ・・!
なんですか…!?

ぽちろう

ビックリしないで
Rigidbody =物理演算コンポーネント
物理演算コンポーネントというのは
ざっくり言うと・・・オブジェクトに
物理的な反応をしてもらいたい
ときに必要なんだ

物理演算コンポーネント


例えば・・・
これを見たら
坂になった板と円が

ど~う見てもこの坂道を
円がコロコロ転がって落ちていく場面を
イメージするよね?
落ちていかないと気持ち悪いでしょ!?

き・・・気持ちが
不安定になります!!



今だと
「円が坂道の上を
転がりながら下に落ちていってほしい」
「坂道の上に置かれている円」
という画像が見えているだけなんです

わたしたちがイメージする
物理的な反応を
オブジェクトに情報として
持たせたいときに必要なのが

物理演算コンポーネント

つまり
Rigidbodyってことだね

Inspector
一番下にある
[Add Component]
クリックして・・・
そこから
[Physics 2D→ [Rigidbody 2D】

Rigidbody2D


この状態で
一度 Game ビューを確認してみると

ありゃ!?!?!?!?!
オブジェクトが
下に落ちて
いっちゃった!?

ぽちろう

そう! これこそ
Blockというオブジェクトが
物理的な反応を示したことの
証明と言っても過言ではない!


なぜなら今 Blockには
Rigidbody 2D によって重力が設定されている!
その重力にしたがって下に落ちてしまったんだ…

ということで
まず Rigidbody 2Dの

「Gravity Scale」 の数値を1から0にする

Gravity てのはズバリ 重力だよ

また
Game ビューに切り替えてオブジェクトが落ちなくなったのを
確認しよう

ぽちろう

重力を0にしたから
落下せず
浮くようになったんだよ

Colliderとは衝突装置

今の状態だと、オブジェクトはすり抜けちゃいます

ぽちろう

オブジェクト同士を衝突させるためには
お互いが接触したときに
反応する 「衝突装置」を
設定しないといけない

それが Collider
コライダー・・・!?




まあ装置なんて言うと仰々しいけど・・・

自分は何かに当たったと
感じる範囲を
ダメージを受けるとかさ
決めましょうってことです


というわけでに
Collider を設定してみよう

また Inspector の一番下にある
「Add Component」 をクリック
Physics2D→Box Collider 2Dと選択

Cllider2D

緑色の四角が見えるようになります
これが当たり判定の粋です

「Freeze Rotation」とは

「回転を止める」 ということ

ぽちろう

Rigidbody 2D
Body Type
Constraints (コンストレインツ)
という項目の中に
「Freeze Rotation」 というのが
あるよね


「Freeze Rotation」 にチェックを入れれば
オブジェクト同士が衝突したときに回転することはなくなります

次は オブジェクトの
Rigidbody 2D を見てみよう
一番上に
「Body Type」 って
あるでしょ?
その名のとおりここから
タイプを切り替えることができるんだ
▼を押すと
選択肢が出てくるよ

関連記事

UnityのPrefabの設定と便利な使い方

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次