Я загружаю файл .usdz в свой ARSCNView, и пока он работает нормально, за исключением того факта, что, когда я загружаю несколько объектов в сцену, приложение вылетает с сообщением: «Завершено из-за проблемы с памятью».
Я использую стандартные образцы .usdz от Apple (https://developer.apple.com/augmented-reality/quick-look/), а размер файла робота составляет около 13,5 МБ.
. Он работает с 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)
}