0

申し訳ありませんが、いくつかのオブジェクトをロードしました。Json と私は Ray を使用してそれらを選択し、色が変わるように交差させました。しかし、実行時にどのオブジェクトがロードされて選択されているかを知りたいです。現在、以下のコードを使用すると、出力は次のようになります。 [object Object] $ var intersects = ray.intersectObjects( scene.children );

            if ( intersects.length > 0 ) {

                if ( INTERSECTED != intersects[ 0 ].object ) {


                    var aux = intersects[ 0 ].object;

                    if ( INTERSECTED ) INTERSECTED.material.emissive.setHex( INTERSECTED.currentHex );


                    INTERSECTED = intersects[ 0 ].object;

                    INTERSECTED.currentHex = INTERSECTED.material.emissive.getHex();
                    INTERSECTED.material.emissive.setHex( 0xffff00 );


                        console.debug("name:,"+aux);

                }

            } else {

                if ( INTERSECTED ) INTERSECTED.material.emissive.setHex( INTERSECTED.currentHex );

                INTERSECTED = null;


            }
4

1 に答える 1

0

idメッシュを作成するときに、各メッシュに一意を追加できます。

mesh = new THREE.Mesh( geometry, material );
mesh.id = some_unique_id;
scene.add( mesh );

そして、交差するロジックでは、次のようになります。

if ( intersects.length > 0 ) {

    alert( intersects[0].object.id );

}
于 2013-01-21T14:21:22.040 に答える