我正在研究一些允许我移动对象的代码,该对象包含相机,这样就像你可以在场景中驱动对象一样。
我正在尝试使用raycaster来测量从可移动物体到可移动物体下的其他物体的距离。
希望能够使用距离来添加到当前可移动物体高度。
这是我提出的代码示例。
var origin = new THREE.Vector3(object.position.x,object.position.y,object.position.z);
//origin.normalize();
var direc = new THREE.Vector3(object.position.x,0,object.position.z);
direc.normalize();
alert('oX ' + origin.x + ', oY ' + origin.y + ', oZ ' + origin.z + ', dX ' + direc.x + ', dY ' + direc.y + ', dZ ' + direc.z);
var raycaster = new THREE.Raycaster();
raycaster.set(origin,direc);
var intersected = raycaster.intersectObjects(self.scene.children);
for ( var intersect in intersected ) {
alert(intersect.distance);
}
使用提醒问题似乎是我direc.normalize()
时的问题。
这会改变x,y,z与它们应该是什么。
如果我不使用normalize()
,似乎不会给出任何结果。
可移动物体设置为matrixAutoUpdate = true;
答案 0 :(得分:0)
Vector类有一个distanceTo函数,可能对你有些影响。它计算向量与另一个向量的距离。
var distance = mesh.position.distanceTo(intersected.object.position)