控制秤行为ARKit

时间:2018-10-02 16:00:27

标签: ios swift sprite-kit arkit

这似乎很奇怪,但是我想知道是否有一种方法可以使屏幕上的节点大小相同,无论它距相机有多远?

我正在尝试显示城市中的2D元素(仅是文本和图像),其中一些可能很远,但是我仍然希望文本和图像可见,但我也不希望它看起来当我离它太近的时候是巨大的。

我目前正在使用Apple SpriteKit示例:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
{
    guard let sceneView = self.view as? ARSKView else 
    {
        return
    }

    // Create anchor using the camera's current position
    if let currentFrame = sceneView.session.currentFrame 
    {            
        // Create a transform with a translation of 0.2 meters in front of the camera
        var translation = matrix_identity_float4x4
        translation.columns.3.z = -0.2
        let transform = simd_mul(currentFrame.camera.transform, translation)

        // Add a new anchor to the session
        let anchor = ARAnchor(transform: transform)
        sceneView.session.add(anchor: anchor)
    }
}

2 个答案:

答案 0 :(得分:0)

您可以测量pointOfView与目标节点之间的距离。您可以使用scale属性相应地测量目标节点

答案 1 :(得分:0)

到目前为止,唯一对我有用的是重新更新每个节点的比例值:

func view(_ view: ARSKView, didUpdate node: SKNode, for anchor: ARAnchor)
{ 
   node.setScale(1)
}