Object3D 変換の階層内で Ray.intersectObjects を使用すると問題が発生します。基本的に、intersectObjects は階層の最上位レベルでの回転を無視しているようです。webgl_interactive_cubes.html デモを変更してこの問題を再現しようとしましたが、うまくいきませんでした。残念ながら、私が取り組んでいるものを投稿することはできません。共有できるように問題を再現しようとしていますが、誰かが何が問題なのかを提案しているかもしれません。これは THREE.js r52 を使用しています。
関連する部分であると私が信じているものは次のとおりです。
- トップレベルの回転を保持するルート THREE.Object3D 要素があります。これが無視されそうな回転です。
- このルート要素には 2 つの子があり、どちらも THREE.Object3D オブジェクトです。それぞれに (固定) 回転と位置変換があります。
- これら 2 つの要素の子要素の共通部分を探しています。これらの子はすべて、THREE.Mesh.clone() を使用して作成された、別の階層からの THREE.Mesh オブジェクトのクローンです。
- 最上位の回転がゼロになると、交差はすべて完全に機能します。
- トップレベルの回転が適用されるとすぐに、交点は回転がなかったかのように動作します...オブジェクトは画面上を移動しますが、オブジェクトが移動していないかのように交点が返されます。
交差をチェックする前に、ルートで updateMatrixWorld(true) を呼び出してみましたが、違いはありません。