0

私は three.js 初心者です。私はこのサンプルで遊んでいます http://threejs.org/examples/css3d_periodictable.html

特定の要素がクリックされたときに知りたいのですが、いくつかのサンプルを見て、以下のコードを追加しました 関数内にブレークポイントを設定すると、要素内をクリックしても intersects.length は常に 0 になります。助けてください!私は何が欠けていますか?前もって感謝します

    function onDocumentMouseDown( event ) {

        event.preventDefault();
        controls.enabled = true;

        mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
        mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
        var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );
        //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,true );

        if ( intersects.length > 0 ) {

            intersects[ 0 ].object.material.color.setHex( Math.random() * 0xffffff );

            var particle = new THREE.Particle( particleMaterial );
            particle.position = intersects[ 0 ].point;
            particle.scale.x = particle.scale.y = 8;
            scene.add( particle );

        }

    }
4

1 に答える 1

0

Raycaster は css3Drenderer では動作しません。要素のonclickイベントを使用するだけです

于 2013-04-27T18:20:38.567 に答える