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
数组中获取到拾取到的物体时,可以根据实际需求来决定需要处理哪些属性,如物体的位置、射线起点等等。