我想直接在地板上放一个人物。我看到两个放置位置:
SCNNode
内rootNode
内,位于height == anchor.transform[3][1]
的全局坐标中我没有关闭跟踪,因为我发现跟踪的稳定性在最初的10到20秒内有所改善。
在第一种情况下,我的图形随机旋转(因为锚趋于增加范围,并希望在跟踪区域中适合范围的矩形)。在第二种情况下,该数字可能高于或低于实际楼层(我可以通过在锚点的SCNNode内部添加额外的“楼层”来看到它)。
我可以使用第一种情况进行变换以补偿旋转,但是它看起来不像是正确的解决方案。
在地板上放置人物的正确方法是什么?
答案 0 :(得分:0)
我想您从arConfiguration.planeDetection = .horizontal
之类的回调中获得了锚,其中arConfiguration
被定义为let arConfiguration = ARWorldTrackingConfiguration()
。
ARKit调用了func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor)
之类的回调时,应将节点添加到ARKit scene.rootNode
中。对于同一平面,此回调将被称为:func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor)
。然后,要在ARKit场景探索期间将相同的对象放置在相同的位置,您应该执行“添加”回调。
我做对了吗? 希望这会有所帮助