我试图检查对象(this.target
)是否正在查看特定位置(newPosition
)。我现在所拥有的是:
new THREE.Matrix4().lookAt( newPosition, this.target.position, this.target.up ) == this.target.matrix
但出于某种原因,这不会起作用。您是如何检查Object3D是否正在查看特定位置?
答案 0 :(得分:1)
这不会起作用,因为目标的矩阵不在同一个地方,并且可以按比例缩放各种各样的东西。
更好的技巧是从您的眼睛对象进行光线投射,看它是否会击中目标物体。
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 );