我正在将一个 .usdz 文件加载到我的 ARSCNView 中,到目前为止它工作正常,除了当我将多个对象加载到我的场景中时,应用程序崩溃并显示消息:由于内存问题而终止。
我正在使用 Apple 的默认 .usdz 示例(https://developer.apple.com/augmented-reality/quick-look/),机器人文件大约 13.5MB 大。
它最多可与 4-5 个实例一起使用,然后崩溃。
ARKit 应用程序的限制这么小,还是我做错了什么?
这是我的代码:
// My touch point on the screen
let touchLocation = sender.location(in: sceneView)
// We have a touch point on an ARPlane
if let result = self.sceneView.hitTest(touchLocation, types: ARHitTestResult.ResultType.existingPlaneUsingExtent).last {
let position = SCNVector3Make(result.worldTransform.columns.3.x, result.worldTransform.columns.3.y, result.worldTransform.columns.3.z)
// Load the .usdz model
guard let usdzURL = Bundle.main.url(forResource: "toy_robot_vintage", withExtension: "usdz") else {
return
}
// Create a node, set position and scale
let referenceNode = SCNReferenceNode(url: usdzURL)!
referenceNode.load()
referenceNode.position = position
referenceNode.scale = SCNVector3Make(0.01, 0.01, 0.01)
// Add node to scene
sceneView.scene.rootNode.addChildNode(referenceNode)
}