你好最近我开始学习three.js。目前我有一个项目,尽管它是一个 3d 环境,但我希望用户仅在 2d(x 轴和 y 轴而不旋转相机)中移动。
有没有像 OrbitControls 这样的three.js的扩展/插件,但具有所需的功能?
最佳答案
你可以用 OrbitControls
做到这一点.相机移动将被限制在垂直于 View 方向的平面上。使用这样的模式:
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.set( 0, 0, 50 );
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.target.set( 0, 0, 0 ); // view direction perpendicular to XY-plane
controls.enableRotate = false;
controls.enableZoom = true; // optional
如果您希望鼠标左键控制相机移动,请添加以下内容:
controls.mouseButtons = { PAN: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, ORBIT: THREE.MOUSE.RIGHT }; // swapping left and right buttons
您可以修改触摸控件以匹配,但您必须编辑
OrbitControls
源代码这样做。三.js r.89
关于Three.js 2d 控制 x 和 y 轴无旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429613/