three.jsでは、私はPointerLockコントロールを使って基本的な一人称シューティングゲームを作っています。 私はあなた「ショット」オブジェクトを意味オブジェクトとの衝突を検出するためにraycasterの方向にthree.jsで線を引く
function onDocumentMouseDown(event) {
var raycaster = new THREE.Raycaster();
mouse3D.normalize();
controls.getDirection(mouse3D);
raycaster.set(controls.getObject().position, mouse3D);
var intersects = raycaster.intersectObjects(objects);
...
}
を使用しています。
ここで、弾丸が取った経路を視覚化したいと思います。私は、ユーザーが探している線をレイキャスターの方向に描くことを考えていましたが、これを行う方法を理解できません...誰かが私を助けることができますか?私は3つの新しい.js、決してラインを描くことがこれは難しいとは思わなかった。
更新: 私が使用して線を描画しようとしている:
var geometry = new THREE.Geometry();
geometry.vertices.push(...);
geometry.vertices.push(...);
var line = new THREE.Line(geometry, material);
scene.add(line);
が、私は「...」の代わりに置くために何を把握することはできません。どのポイントに行を移動させるべきかをどのように検出することができますか?どの点から始めるのかを決定する方法は?プレイヤーは移動してジャンプすることもできるため、開始点も常に異なっています。
https://github.com/mrdoob/three.js/wiki/Drawing-linesため – 2pha
感謝その参照。今私はラインを描く方法を知っていますが、私の問題に対処する方法はまだ分かりません。私は私の質問を更新しました。 – binoculars
私は 'push()'メソッドを開始点と終了点(ベクトル)に送る必要があると思います。おそらくあなたのカメラ位置 'geometry.vertices.push(camera.position)'でしょう。 2番目はintersectObjects関数から返されたインターセットの最初の点です。 'geometry.vertices.push(intersects [0] .point)'です。私はRaycasterを使用していないので、これをテストしていないが、それはそれのようなものになるだろう。 – 2pha