使用变换控制时,threejs禁用轨道相机

时间:2013-11-18 21:44:15

标签: javascript three.js transformation raycasting

我有一个包含多个网格的场景,每个网格都与不同的transformControl相关联;为了选择不同的对象,我正在使用光线投射技术。我也使用轨道相机来导航场景。

每当我使用变换控制修改所选对象的位置/旋转/比例时,我想禁用相机轨道,因为有时当我点击选择器时,我也会选择场景的背景,轨道相机移动了。

我想停止这种行为,我已经尝试使用光线投射技术处理它,但它不起作用。

2 个答案:

答案 0 :(得分:13)

偶然发现了这一点,并认为看到答案会很有帮助(对于BuildingJarl的信用):

// if youre definition is like
var controls = new THREE.OrbitControls( camera );

// you can easily disable it by using
controls.enabled = false;

在我的情况下,我使用的是UI覆盖,我遇到了关注它的问题。禁用控件解决了我的问题。

问候席

答案 1 :(得分:1)

取自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;
});