[Unity] ブロック崩しで思うように跳ね返らない問題

ブロック崩しを作ったことがある人なら気になったと思うが、ボールが並んだブロックのつなぎ目に当たった時に想定している挙動で跳ね返らない問題。


FixedTimeStepを増やすとかCollisionDetectionをContinuousDynamicに設定してみるとかでは思うように解決しない悩ましい問題。

結局のところColliderが複数に分裂しているのが原因なら繋げて1つのColliderにしてしまえばいいのでは?

UnityにはComposite Collider 2Dという機能があるらしく、2Dに限るが複数のColliderを一つにまとめてくれる。しかもランタイムで。
これなら想定する反射が起こせるんじゃなかろか。

でも問題があって、当たり判定をブロック全体で受けてしまうのでどのブロックに当たったのかがわからない。
なので反射用のColliderとしてComposite Collider2Dを作り、それとは別にブロックの当たり判定用でColliderを用意する。

これなら解決できそうな気がする。

まあ、3Dで作ってるからどのみち無理なんだけど。


コメント