web-dev-qa-db-ja.com

three.jsでシーンに追加する前にメッシュの位置を設定するにはどうすればよいですか

Three.jsで、シーン内の位置にメッシュを追加したい

私はもう試した:

// mesh is a THREE.Mesh
scene is a THREE.Scene
scene.add(mesh)
scene.updateMatrixWorld(true)
mesh.matrixWorld.setPosition(new THREE.Vector3(100, 100, 100))
scene.updateMatrix()

しかし、それは何にも影響しませんでした。

私は何をすべきか ?

27
user1783292

ここでドキュメントを確認することをお勧めします: http://threejs.org/docs/#Reference/Objects/Mesh ドキュメントの上部にあるようにページ、メッシュは「Object3D」を継承します。つまり、Object3Dが提供するすべてのメソッドまたはプロパティを使用できます。そのため、Docuページの「Object3D」リンクをクリックして、プロパティリストを確認します。プロパティ「。position」が見つかります。 「。position」をクリックして、データ型を確認します。 Paha..itsVector3

したがって、次のことを試してください。

//scene is a THREE.Scene
scene.add(mesh);
mesh.position.set(100, 100, 100);
70
chsymann

以前にgithubで見ました。 (three.js r71)

mesh.position.set(100, 100, 100);

そして、個人のために行うことができます

mesh.position.setX(200);  
mesh.position.setZ(200); 

参照: https://threejs.org/docs/#api/math/Vector

詳細な説明は次のとおりです:

mesh.positionは「Vector3」であるため。 Vector3()にはsetX()setY()およびsetZ()メソッドがあります。このように使用できます。

mesh.position = new THREE.Vector3() ; //see position is Vector3()
vector1 = new THREE.Vector3();   

mesh.position.setX(100);  //or  this
vector1.setX(100)         // because all of them is Vector3()
camera1.position.setZ(100); // or this
light1.position.setY(100)   // applicable to any object.position
28
bh_earth0

Vector3位置を設定します。

   let group = new THREE.Group();

   // position of box
   let position = new THREE.Vector3(10, 10, 10);

     // add wooden Box
   let woodenBox = new THREE.Mesh(boxGeometry, woodMaterial);

    //update postion
    woodenBox.position.copy(vector);

  // add to scene
   group.add(woodenBox)
   this.scene.add(group);
0
Hitesh Sahu