UnityでRaycastを利用して当たり判定を取るときの注意


Phisics.Raycastで当たり判定を取るときに、LayerMaskを使ってハマったのでそのメモ書き。

床との当たり判定やタップした場所を3次元上で知りたいときなどに有効なRaycastですが、引数の使い方を間違えるとうまく動作しないことがあります。

基本の使い方は

こんな感じです。はじめは距離(fDistance)を長めに設定しておいてあたったのを確認するとよろしいかも。
私の場合は3D平面上でタップした床の位置に移動する、みたいなことがしたかったのでLayerMaskの機能を追加で使っています。
サンプルソースはこんなかんじです↓

マスクするレイヤーはビット処理で増やしたりできるので必要に応じて増やしたり見てためしてください。
(というかマスクのビットが立ってると、逆に無視されるんじゃないかと思って使ってみるまで勘違いしてました。
一度使ってご自身の環境で試してみると理解が深まると思いますのでいろいろやってみてください)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">