Reputation: 13
i'm not good at javascript... T_T
can i get position(x,y,z) where i clicked sprite (or object) ?????
below my code.. help me!!
//sprite
var spriteMap = new THREE.TextureLoader().load( 'tag.png' );
var spriteMaterial = new THREE.SpriteMaterial( { map: spriteMap, color: 0xffffff } );
var sprite = new THREE.Sprite( spriteMaterial );
sprite.scale.set(3, 3, 1)
sprite.position.set(25, 20, 20)
scene.add( sprite );
objects.push(sprite);
//sprite( text )
var spritey = makeTextSprite( " spritey ",
{ fontsize: 24, borderColor: {r:255, g:0, b:0, a:1.0}, backgroundColor: {r:255, g:100, b:100, a:1.0} } );
spritey.position.set(-85,105,55);
scene.add( spritey );
console.log(makeTextSprite);
objects.push(spritey);
///////////////////skip some codes//////////////////////////////////
function onDocumentMouseUp(event) {
event.preventDefault();
var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2-1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(objects);
if (intersects.length > 0) {
window.open(intersects[0].object.userData.URL);
console.log(intersects.length)
}
}
Upvotes: 0
Views: 765
Reputation: 547
if you want the position where you clicked:
var position = intersects[0].point
if you want the position of the object:
var position = intersects[0].object.position
Upvotes: 2