我使用.dae模型创建SCNNode。
let node = SCNNode()
let scene = SCNScene(named: "scene.scnassets/scene.dae")!
for child in scene.rootNode.childNodes
{
node.addChildNode(child)
}然后添加simbTransform并将节点添加到ar场景中
var translation = matrix_identity_float4x4
translation.columns.3.z = -1
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
self.sceneView.scene.rootNode.addChildNode(node)当我移动时,相机节点被附加到它上面。所以我不能绕过节点或者走得更近。
但是当我做这样的事情时,它会像我预期的那样工作。
let node = SCNNode(geometry: SCNBox(width: 0.5, height: 0.5, length: 0.5, chamferRadius: 0))
var translation = matrix_identity_float4x4
translation.columns.3.z = -1
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
self.sceneView.scene.rootNode.addChildNode(node)那么,如何使用.dae模型附加节点来指定位置,而不是相机。
发布于 2017-11-30 19:30:03
这段代码是用哪种方法编写的?
var translation = matrix_identity_float4x4 translation.columns.3.z = -1 node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation) self.sceneView.scene.rootNode.addChildNode(node)
如果你在AR会话的update方法中这样做,那么它是合乎逻辑的,因为每次相机移动时,你都会改变对象的变换。确保只调用一次-在场景设置期间。
https://stackoverflow.com/questions/47480843
复制相似问题