VRエンジン作成日記

ひたすらVRエンジンを作っていきます

マウスのクリック位置とオブジェクトの衝突判定処理を追加

マウスのクリック位置とオブジェクトの衝突判定処理を追加した。処理内容としては、カメラからマウスのクリック位置方向へ線をまっすぐ作って、その線とオブジェクトを囲む箱とが衝突するか判定する処理を書いた。次のサイトを参考にさせて頂いた。

その18 直線とAABB

Unityだと、Camera.ScreenPointToRay() でカメラから線を作ることができる。Physics.Raycast() を使うと、線と衝突する、画面上のオブジェクトを取得することができる。それと同様の処理を今回は追加したことになる。今のところ、Raycast() メソッドの名前はUnityに合わせることができていない。

今のところ、AABBと衝突判定する処理になっているので、回転したオブジェクトをクリックした時、何もない空間でもクリックされたと判定してしまうことがある。OBBと衝突判定する処理に変えることで、違和感は減るだろうと考えている。

他には、昨日の最適化で壊れてしまった箇所を修正したりしていた。

・関連するコミット

add hit test mouse · hikipuro/tea.js@d01e526 · GitHub