0

当我尝试用 Three.js 的“raycaster.intersectObjects”触摸/相交立方体时,我有一个基于 WebGL_Sample 的人行横道应用程序,该应用程序在所有 XDK 模拟器上都能正常运行(我没有使用 XDK,只是测试 EMU)。

问题是,如果我在运行 ICS 的真实 LGP920 上拍摄它,触摸滑动事件可以正常工作(例如样本的滑动立方体),但触摸点击却没有,而在 EMU 上一切正常......

关于发生了什么的任何线索?

这是我使用的(数组“对象”只包含一个立方体元素):

    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 回答