我没有使用camera.rotation或lookAt()函数旋转相机,而是想直接将相机矢量传递给相机...是否可以直接设置相机外观矢量并且可以读取外观从相机矢量?
我正在开发一个3d虚拟家庭项目.除碰撞检测外,每件事情都很好.我使用PointerLockControls来进行相机和移动.但我不确定如何在每个可能的方向上发现碰撞.为简单起见,我开始只是向前和向后碰撞到(0,0,0)上的一个简单立方体:
rays = [
new THREE.Vector3(0, 0, 1),
new THREE.Vector3(0, 0, -1)
];
Run Code Online (Sandbox Code Playgroud)
然后:
function detectCollision() {
var vector;
var projector = new THREE.Projector();
for (var i = 0; i < rays.length; i++) {
var vector = rays[i].clone();
projector.unprojectVector(vector, camera);
var rayCaster = new THREE.Raycaster(controls.getObject().position, vector.sub(controls.getObject().position).normalize());
var intersects = rayCaster.intersectObject(cube, true);
if (intersects.length > 0 && intersects[0].distance < 50) {
console.log(vector);
console.log(i, intersects);
$("#status").text("Collision detected @ " + rays[i].x + "," + rays[i].z +
"<br \>" + intersects[0].distance);
}
} …
Run Code Online (Sandbox Code Playgroud)