たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

Mesh Collidarの上に乗ったことを検出しようとして上手くいかなかった話

やろうとしたこと

ユニティちゃん迷路で、ユニティちゃんがゴール地点にたどり着いたことを検出するために、
ゴール地点にMesh Collidarを置いて、オブジェクトが上に乗ったことを検出しようとしました。

f:id:ZeitungM:20170108224259p:plain
こんな感じに、赤い平面にMesh Collidarを割り当ててみた。

結果

上手くいかなかった。

考察

もしかしたら当たり判定が多少厳しめなのかも知れないと思ったが、
f:id:ZeitungM:20170108224550p:plain
このくらいモロに当たっていても当たり判定が働かないので、
もしかしたらスクリプトが間違っているのかも知れない

…と思ったので、

f:id:ZeitungM:20170108225647p:plain

こういうシーンを作り、先ほどと同じスクリプトを変更して、
BoxがPlaneの上に落ちたときに自分と相手を破壊するようにしてみた。

結果

f:id:ZeitungM:20170108231657p:plain
BoxもPlaneも壊されたので、今度はちゃんとMesh Collidarは動いているようだ。

仮説

Mesh Collidarには、ある程度面に対して垂直な成分がないと当たり判定が働かない?

改善策

というわけで、ゴールに透明なBoxを浮かせてBox Collidarを持たせておくことで、
ゴール到達を検出できましたとさ。