2017-07-05 3 views
0

Ich habe versucht, die Position der nächsten Ebene in meiner ARKit App zu finden. Ich habe einen Code geschrieben, der mir hilft, ihn zu finden, aber aus irgendeinem Grund stürzt er beim Starten meiner App immer wieder ab, wenn ich versuche, dem Flugzeug ein AR-Objekt hinzuzufügen. Stimmt etwas mit meinem Code nicht?Finden der Flugzeugposition in ARKit

struct myPlaneCoords { 
    var x = Float() 
    var y = Float() 
    var z = Float(); 
} 

func getPlaneCoordinates(sceneView: ARSCNView) -> myPlaneCoords{//coordinates where an AR node will be added 

    let cameraTransform = sceneView.session.currentFrame?.camera.transform 
    let cameraCoordinates = MDLTransform(matrix: cameraTransform!) 

    let camX = CGFloat(cameraCoordinates.translation.x) 
    let camY = CGFloat(cameraCoordinates.translation.y) 
    let cameraPosition = CGPoint(x: camX, y: camY) 
    let anchors = sceneView.hitTest(cameraPosition, types: ARHitTestResult.ResultType.existingPlane) 
    let spefAnchor = MDLTransform(matrix: anchors[0].localTransform)//finds closest plane 

    var cc = myPlaneCoords() 
    cc.x = spefAnchor.translation.x 
    cc.y = spefAnchor.translation.y 
    cc.z = spefAnchor.translation.z 

    return cc 

} 
+1

Wo ist der Absturz? Was ist die genaue Fehlermeldung? –

Antwort

0

Schwierig zu beurteilen w/o Ausnahme Beschreibung.

Ich kann davon ausgehen, dass hitTest keinen Anker erkennt. In diesem Fall ist Ihre anchors leer.

let spefAnchor = MDLTransform(matrix: anchors[0].localTransform)//finds closest plane 

Und hier sollten Sie einen Absturz bekommen.

Verwandte Themen