在三个JS中用相机拍摄光线

时间:2013-03-20 01:38:38

标签: javascript 3d three.js

我正在尝试在ThreeJS中创建一个简单的第一人称射击游戏,并且在从相机拍摄光线时遇到一些麻烦。我正在使用Doob的github上的PointerLock示例代码的代码,我正在尝试更改框的颜色,当我查看它并单击鼠标但我的代码似乎只是随机更改框颜色。

以下是查找冲突的代码:

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 );
            }
        }

当你站在一个地方时,我的代码会起作用,但是当你开始移动时,代码的行为就好像相机仍然在原点,它开始了。如何修改此代码以考虑到我将要移动的事实?

0 个答案:

没有答案