检查对象是否在看位置

Check if object is looking at position

我正在尝试检查某个对象 (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 );