私はthreejsを初めて使用しています。three.jsシーンのオブジェクトの位置を動的に取得する
TransformControls.jsを使用して、すべてのXYZ軸でシーンを移動できるオブジェクトがあるシーンがあります。
マウスを使用してシーン内のオブジェクトを移動/移動すると、軸のいずれか(X、Y、Zなど)をクリックしてドラッグすると、シーン内のその特定のオブジェクトの更新されたX、Y、Z位置の座標を取得したいと思います。
私はmesh.position.set(0, 0, 0);
を使用してシーンをレンダリングする前にオブジェクトの位置を設定しますが、シーン内のオブジェクトの動的な位置を取得する方法を見つけることはできません。
最終的に、変換操作後に更新された位置座標を保存し、ユーザーがページに戻ったりページを更新したときに、更新された位置のオブジェクトでシーンを再レンダリングします。
すべてのポインタは非常に役に立ちます。
は
'mesh.position'はメッシュのローカル位置である' Vector3'です。 TransformControlsがこのベクトルを更新するように見えるので、変換が完了した後に 'mesh.position'から新しい位置を取得できるはずです。これはあなたがやっていることですか、あるいは 'mesh.position'は変換後に更新されていませんか? – TheJim01
はい、まさに私がやろうとしていることです。 'THREE.TransformControls(camera、renderer.domElement);を呼び出した後、' console.log(mesh.position.x + '、' + mesh.position.y + '、' + mesh.position.z)私は '0,0,0'として出力を得ます。そう、私はシーンの中でオブジェクトを動かした後、mesh.positionが更新されません。 –
もう1つの質問:どのバージョンの 'three.js'を使用していますか? – TheJim01