2016-07-11 13 views
1

Ich möchte eine Linie (oder einen sehr dünnen SCNCylinder) zeichnen, die den Strahl verfolgt, der verwendet wurde, um ein SCNHitResult zu bestimmen, das ich von einer SCNView mit der Methode hitTest: options erhalten habe.SCNHitResult - Linie zum Trefferpunkt zeichnen

NSArray *hitResults = [self.skView hitTest:point options:nil]; 

Mein Problem ist, dass ich zwei Punkte benötigen, diese Linie zu konstruieren: Der Ursprung und den Punkt (die die pointOfView.position der SCNScene ist), wo der Strahl das erste Objekt getroffen (von denen ich weiß nicht, wie um die Position zu bekommen).

Gibt es eine Möglichkeit, die Position des ersten Treffer SCNGeometry aus dem Hit-Test zu bekommen? Ich habe die unprojectPoint: Methode der SCNView vergeblich versucht. Danke für irgendwelche Hinweise.

Antwort

2

prüfen Sie diesen Code

NSArray *hitResults = [self.skView hitTest:point options:nil]; 
    // check that we clicked on at least one object 
    if ([hitResults count] > 0) { 
     // retrieved the first clicked object 
     SCNHitTestResult * result = [hitResults firstObject]; 
     result.localCoordinates //position relative to local in V3 
     result.worldCoordinates //position relative to world in V3 
    } 

Ich hoffe, das hilft Ihnen

+0

result.worldCoordinates wie ein Zauber funktionieren. Vielen Dank – user1612877