嗨,我正在尝试弄清楚如何在 ARKit 中固定一个简单的节点,当我围绕它走动时。
代码:
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
if let planeAnchor = anchor as? ARPlaneAnchor {
if planeDetected == false { // Bool only allows 1 plane to be added
planeDetected = true
self.addPlane(node: node, anchor: planeAnchor)
}
}
}
这将添加 SCNNode
func addPlane(node: SCNNode, anchor: ARPlaneAnchor) {
// We add the anchor plane here
let showDebugVisuals = Bool()
let plane = Plane(anchor, showDebugVisuals)
planes[anchor] = plane
node.addChildNode(plane)
// We add our custom SCNNode here
let scene = SCNScene(named: "art.scnassets/PlayerModel.scn")!
let Body = scene.rootNode.childNode(withName: "Body", recursively: true)!
Body.position = SCNVector3.positionFromTransform(anchor.transform)
Body.movabilityHint = .movable
wrapperNode.position = SCNVector3.positionFromTransform(anchor.transform)
wrapperNode.addChildNode(Body)
scnView.scene.rootNode.addChildNode(wrapperNode)
我尝试添加一个 平面/锚点 节点并把 "Body" 节点放在其中,但它仍然会移动。我想也许与更新函数有关。
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
}
或者 最有可能是位置设置
wrapperNode.position = SCNVector3.positionFromTransform(anchor.transform)
我已经查阅了互联网上的所有资源、项目文件和视频,但没有人提供一个简单的解决方案来解决这个简单的问题。
我已经查阅了互联网上的所有资源、项目文件和视频,但没有人提供一个简单的解决方案来解决这个简单的问题。