这似乎很奇怪,但是我想知道是否有一种方法可以使屏幕上的节点大小相同,无论它距相机有多远?
我正在尝试显示城市中的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)
}
}
答案 0 :(得分:0)
您可以测量pointOfView与目标节点之间的距离。您可以使用scale属性相应地测量目标节点
答案 1 :(得分:0)
到目前为止,唯一对我有用的是重新更新每个节点的比例值:
func view(_ view: ARSKView, didUpdate node: SKNode, for anchor: ARAnchor)
{
node.setScale(1)
}