Raycaster.intersectObject() 是 three.js 中 Raycaster 类的一个方法,用于在场景中对指定的 Object3D 对象进行射线拾取计算,返回被射线穿过的物体与从 Raycaster 发射点到物体相交点之间的距离。
raycaster.intersectObject( object, recursive );
object:要进行射线拾取计算的 Object3D 对象,为 THREE.Object3D 类的实例对象recursive:是否对传入的 Object3D 对象进行递归计算,来获取其子对象被射线穿过的结果,为一个布尔值,默认值为 false返回一个数组,该数组包含被射线穿过的所有物体与从 Raycaster 发射点到物体相交点之间的距离,每个物体与距离构成一个对象 {distance, object}。
无
var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( mouse, camera );
var intersects = raycaster.intersectObject( objects, true );
if ( intersects.length > 0 ) {
// 处理拾取到的物体
var object = intersects[ 0 ].object;
...
}
Raycaster.intersectObject() 方法,必须先有一个初始化好的 Raycaster 实例。THREE.Group 中,然后传入该 Group 实例来进行计算。intersects 数组中获取到拾取到的物体时,可以根据实际需求来决定需要处理哪些属性,如物体的位置、射线起点等等。