目前我正在开发一个带有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 轴(垂直于任何方向)拍摄?目前,子弹正沿着一条直线前进。
提前感谢你的帮助。