Javascript 三人一组从摄像机中射出一道光线
我正在尝试用3J制作一个简单的第一人称射击游戏,但在从相机中拍摄光线时遇到了一些问题。我正在使用Doob先生的github上的PointerLock示例代码,当我看一个框并单击鼠标时,我只是试图更改框的颜色,但我的代码似乎只是随机更改框的颜色 以下是查找碰撞的代码:Javascript 三人一组从摄像机中射出一道光线,javascript,3d,three.js,Javascript,3d,Three.js,我正在尝试用3J制作一个简单的第一人称射击游戏,但在从相机中拍摄光线时遇到了一些问题。我正在使用Doob先生的github上的PointerLock示例代码,当我看一个框并单击鼠标时,我只是试图更改框的颜色,但我的代码似乎只是随机更改框的颜色 以下是查找碰撞的代码: function onDocumentMouseDown( event ) { event.preventDefault(); var vector = new THREE.Vec
function onDocumentMouseDown( event ) {
event.preventDefault();
var vector = new THREE.Vector3(0,0,1);
projector.unprojectVector(vector, camera);
var rayCam = new THREE.Ray(camera.position, vector.sub(camera.position).normalize() );
var rayCaster = new THREE.Raycaster(rayCam.origin, rayCam.direction);
//rayCaster.ray = rayCam;
var intersects = rayCaster.intersectObjects(scene.children);
if (intersects.length) {
intersects[ 0 ].object.material.color.setHex( Math.random() * 0xffffff );
}
}
当你站在一个地方时,我的代码就起作用了,但是当你开始移动代码时,代码的作用就好像相机仍然在原点,它是从哪里开始的。如何修改此代码以考虑到我将四处走动的事实?请参见此处接受的答案:谢谢!实际上我抓错了位置。事实证明,PointerLock控件实际上不会更改它们从中抓取的摄影机的位置。