2016-08-01 22 views
-1

Ich habe ein Object3D (Position 10, 0, 30) mit einem Kind-Mesh (lokale Position 0, 0, 0) mit BoxGeometry (w: 20, h: 20, d : 20).Kollision für Child-Mesh für Three.js erkennen

Wenn nun ein Strahl mit Ursprung (-10, 0, 0) und Richtung (1, 0, 0) geworfen und auf Schnittpunkt geprüft wird, wurde Schnittpunkt erkannt (falsch, da sich das Objekt nicht im Pfad befindet).

diesen Code vor:

const THREE = require('three'); 
let obj = new THREE.Object3D(); 
let boxGeo = new THREE.BoxGeometry(20, 20, 20); 
let mat = new THREE.MeshPhongMaterial(); 
let mesh = new THREE.Mesh(boxGeo, mat); 
obj.add(mesh); 
obj.position.set(10, 0, 30); 
let raycaster = new THREE.Raycaster(new THREE.Vector3(-10, 0, 0), new THREE.Vector3(1, 0, 0)); 
let intersects = raycaster.intersectObject(obj, true); 

Das Array schneidet der Länge 2, während es auf Länge 0.

Antwort

0

Um sein sollte für Raycaster richtig Kind zu bestimmen Objekte rekursiv, musste ich anrufen updateMatrixWorld() für das übergeordnete Objekt, bevor intersectionObject geprüft wird.