tonarino-takenoko’s blog

アラサー主婦のUnityとか不妊治療とかのメモ

Unity初心者がつまずいたところ

2Dと3Dの違いで

アプリを作ろうとWebでコード探していると「あ、これっぽい」と割とすぐに探してこれるので、コピーして使ってみるんだけども、どうも意図した通りに動かないってことがしばしばある。

 

なんでかっていうと、3D用のコードだから

 

当方2Dのアプリを作ろうとしているのに、探して使っているのが3D用っていう。

そもそも、やりはじめた当時2Dと3Dで関数とか違うってことを知らなかった(無知)

それ故に、「Unity 当たり判定」と検索してでてきた結果を参照して「あら〜?動かん」となってました。エラーもでないのでちょっと困った。(そもそも実行されたないから)

 

以下のヤツに私は引っかかったので忘れないようにメモというか、3Dの方だけ見ちゃうとそれっぽくみえるから困る。3Dって明示してあればな(2Dがあると知らない自分のせいだが)

2D用は「〜2D」って明示してある。

 

<当たり判定>

状態 2D 3D
衝突した OnCollisionEnter2D OnCollisionEnter
離れた OnCollisionExit2D OnCollisionExit
衝突中 OnCollisionStay2D OnCollisionStay

物体同士がぶつかった場合に使う。(例:壁にボールが当たる)

 

<すり抜け判定>

状態 2D 3D
すり抜けた OnTriggerEnter2D OnTriggerEnter
離れた OnTriggerExit2D OnTriggerExit
すり抜け中 OnTriggerStay2D OnTriggerStay

(例:ゴールフラッグを触った)

 

Physics Material 2Dが見当たらない

ボールが当たったらバウンドさせる、みたいな物理特性マテリアルを設定したい。「ふむふむ、Physic Materialなるものを設定すればいいのか。」「2Dの方ね」(2Dは別ってことを学習した)とCreateの中を探してみるもパッとみない。

 

「そこかよ(笑)」ってとこにいたのでメモ。あ〜、言われてみれば感が否めない)

場所はこちら↓

Create > 2D > Physics Material 2D

 

尚、3Dは

Create > Physic Material

今気づいたけど、2Dの方はPhysicsなのね。

 

ちなみに、Material とかいう別物もいる。こちらはテクスチャとか設定するやつ。

Create > Material

 

オブジェクトの設定でよくやるミス

  • オブジェクト(当たり判定あり)が奈落に消えていく
    →RigidBodyのBody TypeをStaticに変更していない
  • 当たり判定がなんか変
    Colliderの設定が適切でない(丸でいいところを四角でやってたり等々)