MeshBVH.rayacast是用于three-bvh-mesh中的MeshBVH类的方法,用于光线投射检测。该方法的调用将返回第一个与光线相交的MeshBVH的叶子节点和相交点。
MeshBVH.raycast(raycaster: Raycaster, intersects: Array, root: BVHNode)
raycaster
(Raycaster) - 用于射线检测的射线。intersects
(Array) - 表示检测结果的数组。node
(BVHNode) - BVH树的根节点。// 创建一个MeshBVH实例
const mesh = new Mesh(geometry, material);
const meshBVH = new MeshBVH(mesh);
// 定义一个raycaster
const raycaster = new Raycaster();
raycaster.set(origin, direction);
// 创建一个空数组
const intersects = [];
// 调用MeshBVH.raycast方法
meshBVH.raycast(raycaster, intersects, meshBVH._root);
// 如果有相交的叶子节点,将其添加到交集数组中
if (intersects.length > 0) {
// 第一个相交叶子节点和相交点
const {node, point} = intersects[0];
// 获得节点的对象
const object = node.object;
// do something
}
该方法没有返回值。