THREE.js Raycasting von einer Kinderkamera zur Szene

Ich versuche, die Maus von meiner Kamera aus per Raycast zu übertragen, um einen Schwebeflug durchzuführen und auf Ereignisse in Maschen in meiner Szene zu klicken.

Mein Problem ist, dass meine Kamera derzeit das untergeordnete Objekt eines anderen Netzes ist (für eine einfachere Kamerabewegung / -rotation) und mein Raycasting jetzt nicht funktioniert (ich gehe davon aus, dass die Kamera ein untergeordnetes Objekt des Netzes und nicht der Szene ist). .

Dies ist ein Teil meines Codes:

//camera setup
var camera = new THREE.PerspectiveCamera(60, window.innerWidth/window.innerHeight, 0.1, 1000);

var cameraTargetGeom = new THREE.SphereGeometry(0.5);
var cameraTargetMaterial = new THREE.MeshLambertMaterial({color: 0xff0000, ambient: 0xff0000});
var cameraTarget = new THREE.Mesh(cameraTargetGeom, cameraTargetMaterial);
cameraTarget.position.set(0.15, 0, 5);
scene.add(cameraTarget);
cameraTarget.add(camera);

camera.position.y = 18;
camera.rotation.x = Math.PI * -90 / 180;



// click event
renderer.domElement.addEventListener('click', clickedCanvas);

function clickedCanvas(e) {
    e.preventDefault();

    mouse.x = (e.clientX / renderer.domElement.width) * 2 - 1;
    mouse.y = -(e.clientY / renderer.domElement.height) * 2 + 1;

    raycaster.setFromCamera(mouse, camera);

    var intersects = raycaster.intersectObjects(scene.children, true);
    console.log(intersects);

    if (intersects.length > 0) {
        >... (redacted code)
    }
}

Es hat einwandfrei funktioniert, bevor ich die Kamera zum cameraTarget-Objekt hinzugefügt habe. Wie kann ich jetzt, da es sich um ein untergeordnetes Element des cameraTarget handelt, ein Raycast von der Kamera erstellen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage