Babylon.jsのチュートリアルをやってみるその14

これは

昨日に引き続きBabylon.jsのチュートリアルをやっていく記事です。
自分であとで思い返す用のメモでもあります。

今日の参照

https://doc.babylonjs.com/babylon101/raycasts

Raycast

Raycastはきちんと理解して行きたいので何回かに分けます。
RayCastを使うのに必要なのは
 ・Rayを定義する
 ・対象のメッシュを作る
 ・メッシュにRayが当たったことを検知する

サンプルではRaycastやる時のあるあるの自分に当たっちゃってる問題を回避するために
以下を定義しています。

// Defaultはtrueなのできちんとfalseにする
// 今回はRayをだす側がboxだったので以下のように定義
box.isPickable = false;

Rayがどこを向いているかわかるようにするため
Babylon.jsではRayHelperを用意していて以下のようにすると可視化されます。

let rayHelper = new BABYLON.RayHelper(ray);
rayHelper.show(scene);

Raycastがhitしたことを検知するためにsceneに対して
pickWithRayがあったかどうかチェックしています。

var hit = scene.pickWithRay(ray);

if (hit.pickedMesh)
{
    // RayにHitした対象を大きくする
    hit.pickedMesh.scaling.y += 0.01;
}

今回サンプルを参考にして作ったのはこんな感じ。

torikizi.github.io

きょうはここまで。
明日はRaycastの続きをやります。