:three.jsでロードされた.objの絶対位置を取得する方法は? .objファイルの読み込み
loader.load('test.obj', function (objMesh) {
objMesh.traverse(function (child) {
if (child instanceof THREE.Mesh) {
child.material = mat2;
}
});
私はmrdoobsコードで位置を見つけることを試みた:
objMesh.geometry.computeBoundingBox();
var boundingBox = objMesh.geometry.boundingBox;
var position = new THREE.Vector3();
position.subVectors(boundingBox.max, boundingBox.min);
position.multiplyScalar(0.5);
position.add(boundingBox.min);
position.applyMatrix4(objMesh.matrixWorld);
alert(position.x + ',' + position.y + ',' + position.z);
は、しかし、これは
objMesh.geometry is undefined
で失敗するこれは、ロードされたメッシュでは不可能ですか?
でそれを呼び出す:あなたが関数内mrdoobのコードをラップしてから、メッシュのパラメータでコールバック
onLoad
機能で、この機能を呼び出すことができますあるいは、 _Mesh_ _object_をどこに作成しますか? –
次の例の場合、少し修正したバージョンを使用しました。https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj.html –
_objMesh_オブジェクトの作成が「null」でないか、または'undefined'ですか? –