1

続きとして: 1つのオブジェクトを遠くのオブジェクトに向けます

メッシュのサーフェスが別のオブジェクトを指すようにしようとしています。遠くのオブジェクトが移動するたびに、遠くのオブジェクトが近くのオブジェクトを指すようにします。

これが起こっていることのサンプルです:http: //jsfiddle.net/UsVUv/

1)2つのメッシュオブジェクトを作成します。2)遠いメッシュが上を向いているので、カメラから見えるように回転させます。-> farMesh.rotation = new THREE.Vector3(Math.PI / 2、0、0); 3)遠いメッシュを移動するときは、次のように呼び出して、近いメッシュを見続けるようにします。遠いメッシュの面は近いメッシュを見ませんが、その平面のエッジは見ます。-> farMesh.lookAt(nearMesh.position); 4)次に、メッシュを後ろに回転させてカメラに再び向くようにしますが、これにより、lookAtが行った回転が削除されます。-> farMesh.rotation = new THREE.Vector3(Math.PI / 2、0、0);

サンプルの1)、2)、および3)の行をコメントアウトして、何が起こっているかを確認できます。

4

1 に答える 1

2

はい、farMesh.lookAt()farMesh.rotationは互いに競合しています。

代わりに、次のようfarMeshに作成されたらすぐに平面ジオメトリを回転させる必要があります。applyMatrix()

    farMesh.geometry.applyMatrix( new THREE.Matrix4().makeRotationX( Math.PI / 2 ) );

つまり、要約するとapplyMatrix()、オブジェクトのジオメトリを変換し、オブジェクトのベクトルをlookAt()設定します。rotation

更新されたフィドルは次のとおりです:http://jsfiddle.net/UsVUv/1/

于 2012-07-16T16:57:51.350 に答える