gpt4 book ai didi

javascript - 使用 OrbitControls 时如何在 Three.js 中禁用右键单击鼠标移动相机旋转?

转载 作者:行者123 更新时间:2023-11-28 14:26:02 25 4
gpt4 key购买 nike

我正在使用轨道控制来旋转三.j 中的相机。

const controls = new THREE.OrbitControls(camera, renderer.domElement);

controls.dampingFactor = 0.07;
controls.rotateSpeed = 0.07;
controls.enableZoom = false;
controls.screenSpacePanning = false;
controls.minDistance = 250;
controls.maxDistance = 350;
controls.minPolarAngle = 1.2;
controls.maxPolarAngle = 1.2;

我正在像这样固定相机位置 -

camera.position.x = 308;
camera.position.y = 130;
camera.position.z = 135;

当我使用左键单击鼠标移动时,相机在我的对象周围移动得很好。但是当我使用右键单击鼠标移动时,它会奇怪地将我的相机移离物体。我需要禁用此功能,但找不到任何方法来做到这一点。我尝试在文档上使用事件监听器来阻止和停止鼠标移动事件的传播(如果右键单击),但它不起作用。

document.addEventListener("mousedown", function(event){
console.log(event.button);
if(event.button == 2){
rightmousemove = true;
return false;
// // Right click
}
});
document.addEventListener("mousemove", function(event){
if(rightmousemove === true){
event.preventDefault();
event.stopPropagation();
}
});

最佳答案

您所描述的是“平移”。您可以通过以下方式禁用此功能:

controls.enablePan = false;

https://threejs.org/docs/#examples/controls/OrbitControls.enablePan

关于javascript - 使用 OrbitControls 时如何在 Three.js 中禁用右键单击鼠标移动相机旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53220583/

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