我正在沿着带有ARKit的SpriteKit示例,想要更改行为,而不是将精灵放在摄像机前面 - 我希望精灵始终位于地板上方的固定距离(飞机? ),例如眼平。我还想使用WorldAlignment gravityAndHeading
,以便我可以随时将它放在房间的同一部分。
以下是示例代码
if let currentFrame = sceneView.session.currentFrame {
// Create a transform with a translation of 1.5 meters in front of the camera
var translation = matrix_identity_float4x4
translation.columns.3.z = -1.5
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)
}
当我将翻译传递给currentFrame.camera.transform
时,是否需要获取相机的高度位置,或者是否有某些东西会给我绝对或相对位置而不是0?
另外,我假设我应该打开平面检测并在检测到的平面上添加我的锚点? configuration.planeDetection = .horizontal