gpt4 book ai didi

javascript - 三个js,获取pointerlockcontrols面向的vector3

转载 作者:行者123 更新时间:2023-12-01 15:54:48 25 4
gpt4 key购买 nike

想知道是否有可能获得指针锁定控件中偏航对象的朝向并将其用作光线转换器的方向。我一直在研究代码,试图向其中添加一些基本的射击游戏内容。我一直在尝试一些我在堆栈溢出时发现的东西,这些东西来自指针控件提供的偏航对象的 X 和 Y 值,但没有成功。这是我到目前为止所拥有的:

setupTarget: function() {
//var vector = new THREE.Vector3(game.mouse.x, game.mouse.y, 0);
var yaw = game.controls.getObject();
var pitch = game.controls.pitchObject;
var vector = new THREE.Vector3(
yaw.position.x * Math.cos(pitch.rotation.x),
yaw.position.y * Math.sin(yaw.rotation.y),
0
);
var dir = vector.sub(yaw.position).normalize();
this.ray = new THREE.Raycaster(yaw.position.clone(), dir);
}

我知道这是错误的,但它不起作用。混淆了基于旋转计算 x 和 y 平移的一些数学,但这显然不适用于目标。

最佳答案

将以下内容添加到您的 PointerLockControls 副本(或等待几天以获取下一个版本):

this.getDirection = function() {

// assumes the camera itself is not rotated

var direction = new THREE.Vector3( 0, 0, -1 );
var rotation = new THREE.Euler( 0, 0, 0, "YXZ" );

return function( v ) {

rotation.set( pitchObject.rotation.x, yawObject.rotation.y, 0 );

v.copy( direction ).applyEuler( rotation );

return v;

}

}();

three.js r.59

关于javascript - 三个js,获取pointerlockcontrols面向的vector3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18200372/

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