我正在使用投影仪和 raycaster 与 Three.Sprite 对象相交,但是,即使我触摸到图像边界之外,我也可以获得该对象。于是,我深入到了three.js文件中,找到了一段源码:
var intersectObject = function ( object, raycaster, intersects ) {
if ( object instanceof THREE.Sprite ) {
matrixPosition.getPositionFromMatrix( object.matrixWorld );
var distance = raycaster.ray.distanceToPoint( matrixPosition );
if ( distance > object.scale.x ) {
return intersects;
}
intersects.push( {
distance: distance,
point: object.position,
face: null,
object: object
});
我无法理解if ( distance > object.scale.x )
,我认为这是我遇到的问题。我是 Threejs 的新手。我会穿吗?谢谢你的帮助!!