作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在使用 Three.js 和 PointerLockControls 开发 FPS。
使用下面的代码我可以向任何水平方向拍摄:
var direction = new THREE.Vector3( 0, 0, -1 );
var rotation = new THREE.Euler( 0, 0, 0, "XYZ" );
var cameraDirection = new THREE.Vector3(this.game.usermodel.root.children[0].position.x, this.game.usermodel.root.children[0].rotation._x, this.game.usermodel.root.children[0].position.z);
cameraDirection.copy( direction ).applyEuler( this.game.user.rotation );
var raycaster = new THREE.Raycaster(this.game.usermodel.root.children[0].position, cameraDirection);
但是我的代码没有考虑 y 轴。下面的行保存俯仰旋转:
this.game.usermodel.root.children[0].rotation._x
如何应用此值以便我也可以沿 y 轴(垂直向任何方向)拍摄?目前子弹沿直线飞行。
预先感谢您的帮助。
最佳答案
如果您正在使用PointerLockControls
并且想要设置光线转换器,则可以使用以下模式:
var direction = new THREE.Vector3();
var raycaster = new THREE.Raycaster(); // create once and reuse
...
controls.getDirection( direction );
raycater.set( controls.getObject().position, direction );
如果您使用PointerLockControls
,请勿直接设置相机位置或旋转。
三.js r.71
关于javascript - 三.js Pointerlock控制沿y轴射击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311875/
我是一名优秀的程序员,十分优秀!