Tin*_*loy 5 scenekit swift arkit
我正在使用ARKit图像跟踪配置,一旦检测到图像,图像上将弹出3D场景。
但是,当我设置两个不同的图像来触发两个不同的场景文件时,一个图像始终在同一图像上弹出两个不同的场景文件。我很确定图像是不同的,名称是不同的,场景文件是不同的,场景的内容也是不同的。
一旦检测到图像,控制台中还将弹出以下错误:[SceneKit]错误:在另一个场景()的渲染回调中修改了场景。不允许这样做,可能导致崩溃
此错误有任何原因和解决方案吗?
我在图像跟踪中使用 ARKit 2 也有同样的错误。经过几个小时的尝试,我找到了解决方案。显然,您需要在后台线程中创建节点才能使用场景。这是我的代码:
DispatchQueue.main.async {
if let imageAnchor = anchor as? ARImageAnchor {
let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
plane.firstMaterial?.diffuse.contents = UIColor(white: 1.0, alpha: 0.5)
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi
node.addChildNode(planeNode)
...
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误是因为我正在调用scene.isPaused = false,并且删除该行消除了控制台错误。您是否对您的 进行任何修改SCNScene?这将是开始隔离错误源的好地方。
| 归档时间: |
|
| 查看次数: |
2127 次 |
| 最近记录: |