広告あり

【Unity】オブジェクトの衝突判定!!(Collider)

Unity

 

こんばんは、ちきなるです。

 

今回は、衝突!!

 

Unityで、オブジェクトを衝突させるのに必要な、

Colliderコライダーについて、まとめます。

 

 

- 広告 -

Collider

Unityで、オブジェクトを衝突(Collision)させるのに必要なのが・・・。

 

Collider(コライダー)

オブジェクトにつけられた、Collider同士がぶつかることで、衝突が、発生します。

 

Colliderが無ければ、衝突は、発生しません。

 

オブジェクトを衝突させたい時は、

Colliderを付けましょう(両方のオブジェクトに)

 

(キャラクターを地面に立たせるのも、Colliderです。

 キャラクターと地面の衝突)

 

 

Colliderの付け方(2D)

GameObject(ゲームオブジェクト)のInspecter(インスペクター)ビューを見ます。

Hierarchyビューで、Colliderを付けたいゲームオブジェクトをクリック)

 

Add Componentをクリックします。

 

表示される一覧から、

Physics 2Dを選択します。

(3Dの場合は、Physicsを選択)

(何もついていないのが3D。 2Dとついているのが2D)

 

次の一覧から、

オブジェクトに合ったCollider 2Dを選択します。

(形が複雑な場合は、Polygon Collider 2D!!)

衝突するもう片方のGame Objectにも、

Collider 2Dを設定すると、衝突するようになります。

注意点。

 

Colliderには、

2D3Dが存在します。

Physics 2DPhysics

 

2Dは、2Dと、

3Dは、3Dと、

衝突します。

 

つまり、

2Dと3Dは、衝突しません。

 

2Dゲームを作る時、

あれ?衝突しないぞ?

 

の、原因の1つが、

どこかのGame Objectに3D用のColliderを付けている時。

 

(私は、

 床に3D用のColliderを付けて、何度もすり抜けていました)

 

気を付けましょう。

 

 

is Triggerについて

Colliderには、is Triggerという、チェックボックスがあります。

 

これにチェックを入れると、

イベントだけが、発生する状態に出来ます。

Colliderどうしが、ぶつかっても、

衝突はしない、けれども、

衝突したよ。と、言うイベントは発生する。

そんな状態になります。

(is Triggerを付けるのは、片方だけで良いです)

これを使うと、

特定の範囲内に入ったことを検知できるので、

毒沼など、範囲内だけで、効果を発生させたい時に便利です。

使い方は、

is Triggerにチャックを入れるだけ。

 

こうするだけで、

ゲームオブジェクトどうしは、ぶつからないけれど、

イベントは、発生する状態になります。

 

注意。

発生するイベントは、OnTriggerに変わります。

自分、相手、どちらかがis Triggerなら、発生するイベントは、OnTriggerになります。

 

ぶつかった時のイベント

OnCollisionEnter2D → OnTriggerEnter2D

 

離れた時のイベント

OnCollisionExit2D → OnTriggerExit2D

 

(それ以外もCollisionが、Triggerに変わります)

 

 

まとめ

オブジェクトを衝突させたい時は、Colliderを付けましょう。

Colliderには、2D用と、3D用があるので、気を付けましょう。

(1つのゲーム内で統一させる。

 2D用と3D用を混合させない)

 

is Triggerにチェックを入れると、衝突しなくなります。

が!!

イベントは発生します。

 

特定のポイントに入ったかどうか、確認するのに便利です。

コメント