【发布时间】:2017-12-11 13:55:55
【问题描述】:
我想要一个添加到场景中的节点指向北方。我从核心位置获取标题数据,这表示设备当前在我的场景创建点处所面对的方向(以及我的根节点所面对的方向),然后我将标题添加到我的新sceneNode's eulerAngles.y,旋转它使其面向北方。
func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
if sceneNode == nil,
let heading = self.locationManager.heading {
sceneNode = SCNNode()
sceneNode.eulerAngles.y += Float(heading).degreesToRadians
sceneView.scene.rootNode.addChildNode(sceneNode)
}
}
标题信息是正确的,因此旋转它这么多确实会旋转所需的量,假设标题与我的根节点所面对的方向相同。但是我发现我的根节点的方向并不等同于设备的方向,有时可能会非常偏离。所以这意味着标题与场景节点的“标题”相同的假设是不正确的,我需要能够知道它离标题有多远,所以我可以在我的 sceneNode 中正确纠正它.
【问题讨论】:
-
您使用什么world alignment 进行会话配置?
-
@rickster 啊。是的,这就是我一直在寻找的,如果您想将其添加为答案。
标签: ios scenekit arkit scnscene arscnview