ios - 添加 SCNPhysicsBallSocketJoint 时 SceneKit 崩溃
问题描述
我正在使用 ARKit 和 SceneKit 进行面部跟踪,所以在某些情况下我需要重置我的场景。这是我的重置代码:
sceneView.scene.physicsWorld.removeAllBehaviors()
let configuration = ARFaceTrackingConfiguration()
configuration.isLightEstimationEnabled = true
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
下一步是设置我添加节点并通过SCNPhysicsBallSocketJoint链接它们的场景。但是这一步会导致崩溃
Thread 8 name: com.apple.scenekit.scnview-renderer Dispatch queue: com.apple.scenekit.renderingQueue.ARSCNView0x153d0a8d0
Thread 8 Crashed:
0 SceneKit 0x00000001bad70600 btUnionFind::unite+ 2950656 (int, int) + 8
1 SceneKit 0x00000001bad705cc btDiscreteDynamicsWorld::calculateSimulationIslands+ 2950604 () + 296
2 SceneKit 0x00000001bad6f218 btDiscreteDynamicsWorld::internalSingleStepSimulation+ 2945560 (float) + 136
3 SceneKit 0x00000001bad6f138 btDiscreteDynamicsWorld::stepSimulation+ 2945336 (float, int, float) + 276
4 SceneKit 0x00000001babb7334 -[SCNPhysicsWorld _step:] + 180
5 SceneKit 0x00000001babff774 -[SCNRenderer _update:] + 964
6 SceneKit 0x00000001bac01c50 -[SCNRenderer _drawSceneWithNewRenderer:] + 196
7 SceneKit 0x00000001bac02208 -[SCNRenderer _drawScene:] + 48
8 SceneKit 0x00000001bac025b0 -[SCNRenderer _drawAtTime:] + 636
9 SceneKit 0x00000001bac9c9bc -[SCNView _drawAtTime:] + 452
10 ARKit 0x00000001c275b9cc -[ARSCNView _drawAtTime:] + 40
11 SceneKit 0x00000001bab638d0 __69-[NSObject+ 800976 (SCN_DisplayLinkExtensions)
奇怪的是,在第一次场景设置时,将SCNPhysicsBallSocketJoint关节添加到节点时没有崩溃。我想也许是错误重置场景的原因。请帮忙。
解决方案
SCNPhysicsBallSocketJoint 中的节点应该有physicalBodyies。
推荐阅读
- jenkins - 以编程方式查找 Job DSL 插件生成的作业
- android - 在没有隐式广播的情况下收听 Oreo+ android 设备中的来电/去电
- regex - 该语言的哪个正则表达式是“最干净”或最有效的?
- python - 将图像文件上传到数据库
- javascript - 如何在javascript中的关联数组上使用数组索引生成数组键
- javascript - 添加文档并将子集合添加到该文档 Firestore
- testing - 是否可以将多个测试计划以及测试套件和测试结果添加到新的测试计划中>
- regex - 无法获取小写值的 AD 属性?
- bash - 使用脚本在 FreeNAS NAS 中的文件夹之间移动文件
- algorithm - 用伪代码表达“等于”