我有一个场景,其中包含多个网格,每个网格都与不同的transformControl相关联;为了选择不同的对象,我使用射线投射技术。同时,我还使用轨道相机来浏览场景。
每当我使用变换控制器来修改所选对象的位置/旋转/缩放时,我希望禁用轨道相机,因为有时在点击选取器时,我也会选中场景背景,导致轨道相机移动。
我想停止这种行为,已经尝试使用射线投射技术处理,但没有成功。
我有一个场景,其中包含多个网格,每个网格都与不同的transformControl相关联;为了选择不同的对象,我使用射线投射技术。同时,我还使用轨道相机来浏览场景。
每当我使用变换控制器来修改所选对象的位置/旋转/缩放时,我希望禁用轨道相机,因为有时在点击选取器时,我也会选中场景背景,导致轨道相机移动。
我想停止这种行为,已经尝试使用射线投射技术处理,但没有成功。
偶然发现这个并认为看到答案会很有帮助(感谢 BuildingJarl):
// if youre definition is like
var controls = new THREE.OrbitControls( camera );
// you can easily disable it by using
controls.enabled = false;
在我的情况下,我正在使用一个UI覆盖层,但无法将焦点放在其上。禁用控件解决了我的问题。
问候 Mat
controls.noPan = false;
。链接是https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js。 - Avatar摘自three.js编辑器代码:
var orbitControls= new THREE.EditorControls(camera, renderer.domElement);
orbitControls.addEventListener('change', render);
var transformControls = new THREE.TransformControls(camera, renderer.domElement);
transformControls.addEventListener('change', render);
transformControls.attach(mesh);
transformControls.addEventListener('mouseDown', function () {
orbitControls.enabled = false;
});
transformControls.addEventListener('mouseUp', function () {
orbitControls.enabled = true;
});
controls.enableRotate = false;
- aswzen