javascript - 在 Three.js 中单击对象或 Sprite 时如何获取位置?

标签 javascript three.js

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)
        }
    }

最佳答案

如果您想要单击的位置:

var position = intersects[0].point

如果你想要对象的位置:

 var position = intersects[0].object.position

关于javascript - 在 Three.js 中单击对象或 Sprite 时如何获取位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41597357/

相关文章:

javascript - 在 Node.js 应用程序上使用 API key 验证表格请求

javascript - three.js Hello World 示例 : canvas doesn't render

javascript - 如何避免浏览器的 Zoom 改变 Canvas 的大小?

javascript - 愚蠢的 Javascript 和 ThreeJs 问题

javascript - Node.js HTTP 响应流

javascript - 动态内容均匀分布在 2 列之间

javascript - 使用鼠标在浏览器中使用 three.js 操作对象

three.js - 在 Three.js PointClouod 中动态更改点颜色

javascript - Array.prototype.map 中的 'thisArg' 参数

javascript - 如何使用 PHP CURL 模拟 Ajax 请求?