0
私は、球が表示されているような球が表示されるような射手をユーザーが撮影する必要があります。 球を撮影した後、オブジェクトは消え、別の球がポップアップします。私はポインタロックコントロールを使用しています。3球の球の中心に対する軌道の精度
球を使用して撮影しますとき、私は検出:
function onDocumentMouseDown(event) {
var mouse3D = new THREE.Vector3();
var raycaster = new THREE.Raycaster();
mouse3D.normalize();
controls.getDirection(mouse3D);
raycaster.set(controls.getObject().position, mouse3D);
var intersects = raycaster.intersectObjects(objects);
// Change color if hit sphere
if (intersects.length > 0) {
intersects[ 0 ].object.material.color.setHex(Math.random() * 0xffffff);
//hide shpere
object.traverse(function(child){child.visible = false;});
update_sphereplace();
}
}
これは完璧に動作しますが、今私は、精度の機能を統合したいです。 どのように球の中心に基づいて精度を追跡できますか?例えば、中心を打つと、100の精度が得られるはずです。中心から比較的離れた球に当てると、0に近い精度が得られます(ただし、0は球がないため0になりません)。
ヒント:1 'Raycaster'作成して、[再利用] (http://stackoverflow.com/questions/29311875/three-js-pointerlockcontrols-shooting-along-y-axis/29312773#29312773)。 – WestLangley
提案していただきありがとうございます。これはどのように機能しますか? 'var raycaster = new THREE.Raycaster();'を 'onDocumentMouseDown'関数の外に置くか、それとももっとたくさんありますか? – binoculars