gpt4 book ai didi

javascript - 三.js Pointerlock控制沿y轴射击

转载 作者:行者123 更新时间:2023-12-03 10:28:35 26 4
gpt4 key购买 nike

目前我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com