0

Three.jsの「raycaster.intersectObjects」でキューブに触れたり交差させたりしようとすると、すべてのXDKエミュレーターで正しく動作するクロスウォークWebGL_Sampleベースのアプリがあります(私はXDKを使用しておらず、EMUをテストしているだけです)。

問題は、ICS を実行している実際の LGP920 で撮影すると、タッチ スライド イベントは機能しますが (サンプルのスライド キューブのように)、タッチ クリックは機能しませんが、EMU ではすべて正常に機能します...

何が起こっているかについての手がかりはありますか?

これが私が使用するものです(配列「オブジェクト」にはキューブ要素が1つだけ含まれています):

    var vector = new THREE.Vector3( ( e.clientX / window.innerWidth ) * 2 - 1, - ( e.clientY / window.innerHeight ) * 2 + 1, 0.999 );
    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 ) {

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

    }

ありがとう !

4

1 に答える 1

0

わかりました。XDK エミュレーターでは、マウス ポインターをターゲット キューブ サーフェス上に置いたときにアプリが反応していましたが、デバイス上の指では反応しませんでした。

デバイスには e.touches[0].pageX と e.touches[0].pageY (e.clientX と e.clientY の代わりに) を使用する必要がありました。

于 2014-07-08T10:19:35.413 に答える