gpt4 book ai didi

javascript - Three.js中如何让对象跟随PointerLockControls的方向?

转载 作者:行者123 更新时间:2023-11-29 21:09:28 26 4
gpt4 key购买 nike

我正在使用 Three.jsPointerLockControls 创建简单的 FPS 游戏。我想做的是将武器附加到相机/控件上。

我能够将枪放在相机前面并沿 x/y 轴移动它,但它不会沿 z 轴(上/下)移动。

function updateGun() {
if (weapon) {
const yaw = controls.getObject();
weapon.position.set(
yaw.position.x - Math.sin(yaw.rotation.y) * 3,
yaw.position.y - 1,
yaw.position.z - Math.cos(yaw.rotation.y) * 3);

weapon.rotation.set(
yaw.rotation.x,
(yaw.rotation.y - Math.PI),
yaw.rotation.z);
}
}

最佳答案

如果您正在使用 PointerLockControls 并且想要添加一个保持在相机前面的对象,您可以使用这种模式:

var mesh = new THREE.Mesh( new THREE.SphereGeometry( 5, 16, 8 ), new THREE.MeshNormalMaterial() );
mesh.position.z = - 100; // some negative number

camera.add( mesh );

如果您没有使用 PointerLockControls,您仍然可以使用相同的技术,您只需确保将相机添加为场景的子项即可。

scene.add( camera );
camera.add( mesh );

three.js r.84

关于javascript - Three.js中如何让对象跟随PointerLockControls的方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42401710/

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