10

複数のメッシュを含むシーンがあり、それぞれが異なる transformControl に関連付けられています。さまざまなオブジェクトを選択するために、レイキャスティング技術を使用しています。シーンをナビゲートするために軌道カメラも使用しています。

トランスフォーム コントロールを使用して選択したオブジェクトの位置/回転/スケールを変更するときはいつでも、軌道カメラを無効にしたいと考えています。カメラが動く。

この動作を止めたいと思っており、すでにレイキャスティング技術で処理しようとしましたが、うまくいきません。

4

2 に答える 2

25

これにつまずいて、答えを見ると役立つと思いました(BuildingJarlへのクレジット):

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

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

私の場合、UI オーバーレイを使用していましたが、フォーカスを合わせる際に問題が発生しました。コントロールを無効にすることで問題が解決しました。

グリーティングマット

于 2014-07-07T20:44:23.587 に答える
3

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;
});
于 2016-10-15T18:27:37.470 に答える