我希望当网格在另一个网格后面时触发intersectObjects(以检测该网格对于相机是否可见) .
到目前为止我得到的结果是,当网格在后面和另一个网格前面时,intersectObjects都会触发 .
和castRay代码:
function castRay() {
var direction = sphere.position.clone();
var startPoint = camera.position.clone();
var directionVector = direction.sub( startPoint );
var ray = new THREE.Raycaster(startPoint, directionVector.clone(). normalize());
var intersects = ray.intersectObjects(meshGroup, true);
if ( intersects.length > 0 ) {
console.log("hidden");
}
}
谢谢!
1 回答
intersects
是按光线交叉顺序排列的对象数组 .所以第一个对象是
intersects[0]
,第二个是intersects[1]
,第三个是intersects[2]
等等 . 所以intersects[1]
的定义是intersects[0]
.因此,如果你想对前面的对象做一些事情,你所要做的就是使用
intersects[0]
.希望能帮到你......