7

優れたSim.jsおよびThree.jsライブラリを使用してWebGLプロジェクトに取り組んでいるときに、次の問題に遭遇しました。

途中のどこかで、THREE.Rayの次のコンストラクターを使用します。

var ray = new THREE.Ray( this.camera.position, vector.subSelf( this.camera.position ).normalize() );

ここで、vectorはVector3であり、

これにより、次のエラーが発生します。

TypeErrorObject[オブジェクトオブジェクト]にはメソッドsubSelfがありません。

私が使用しているThree.jsのドキュメントと、これに最も近づいたvector3のメソッドを確認しました。

.sub( v ) Vector3

これを変更しようとしましたが、この呼び出しで新しいエラーが表示されます。

var intersects = ray.intersectScene( this.scene );

チェックすると、rayにはintersectsPlaneメソッドがないため、これもエラーをスローします

4

1 に答える 1

14

THREE.jsAPIはしばらく前に変更されたと思います。

Vector3あなたが発見したように、のsubSelf() は今では単純です。sub()

そして、RayintersectsPlane() ように見えますintersectPlane()

複雑なシーンの交差が必要な場合は、代わりに使用することをお勧めしますRaycaster。ドキュメント: http: //mrdoob.github.com/three.js/docs/56/#Reference/Core/Raycaster

Three.jsのドキュメントは、これまでで最高のものではありません...ただし、ソースコードを調べるだけで、多くの洞察を得ることができます。

于 2013-03-04T21:22:06.073 に答える