2016-05-25 13 views
0

Was ich versuche zu erreichen ist eine bestimmte Masche Übergang zu einem bestimmten Vektor zu machen, bis sie schließlich durch den Spieler gestoppt.ThreeJS, erhalten Vektor in Richtung geklickt Richtung

Bisher habe ich es geschafft, die XY-Koordinaten des angeklickten Leinwand zu erhalten und sie in 3D-Projekt den folgenden Code verwenden. Leider bin ich mir nicht sicher, welchen Ansatz ich nehmen sollte, um die Richtung auf die angeklickte Position zu bekommen.

var vector = new THREE.Vector3(); 

vector.set(
    (event.clientX/window.innerWidth) * 2 - 1, 
    + (event.clientY/window.innerHeight) * 2 + 1, 
    0.5); 

vector.unproject(camera); 

var dir = vector.sub(camera.position).normalize(); 

var distance = + camera.position.z/dir.z; 

var pos = camera.position.clone().add(dir.multiplyScalar(distance)); 

Antwort

1

Dies setzt ein Ziel Vector3 und eine maximale Entfernung pro Rahmen von .01.

var vec1 = target.clone(); // target 
    vec1.sub(mesh.position); // target - position 
    var dist = Math.min(vec1.length(), .01); // assume .01 is maximum movement 
    if (dist > 0) { 
    vec1.setLength(dist); // this will be the movement 
    mesh.position.add(vec1); // this moves the messh 
    }