检查对象是否正在查看位置

Check if object is looking at position

本文关键字:位置 对象 是否 检查      更新时间:2023-09-26

我正在尝试检查对象(this.target)是否正在查看特定位置(newPosition)。我现在拥有以下内容:

new THREE.Matrix4().lookAt( newPosition, this.target.position, this.target.up ) == this.target.matrix

但由于某种原因,这是行不通的。您如何检查 Object3D 是否正在查看特定位置?

这是行不通的,因为目标的矩阵不在同一个地方,并且可以以不同的方式缩放和各种各样的东西。

更好的技术是从眼睛物体进行光线投射,看看它是否击中了目标物体。

http://threejs.org/examples/#webgl_geometry_terrain_raycast

var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( mouse, camera );
// See if the ray from the camera into the world hits one of our meshes
var intersects = raycaster.intersectObject( mesh );