ARKit项目:在展开可选值时意外发现nil



当我在Xcode上创建一个ArKit项目时,样板项目不会运行,并返回一个找不到船的错误。视交叉上核资产。

SceneKit项目的锅炉板代码:

import UIKit
import SceneKit
import ARKit
class ViewController: UIViewController, ARSCNViewDelegate {
@IBOutlet var sceneView: ARSCNView!

override func viewDidLoad() {
super.viewDidLoad()

// Set the view's delegate
sceneView.delegate = self

// Show statistics such as fps and timing information
sceneView.showsStatistics = true

// Create a new scene
let scene = SCNScene(named: "art.scnassets/ship.scn")!

// Set the scene to the view
sceneView.scene = scene
}

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

// Create a session configuration
let configuration = ARWorldTrackingConfiguration()
// Run the view's session
sceneView.session.run(configuration)
}

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)

// Pause the view's session
sceneView.session.pause()
}
// MARK: - ARSCNViewDelegate

/*
// Override to create and configure nodes for anchors added to the view's session.
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()

return node
}
*/

func session(_ session: ARSession, didFailWithError error: Error) {
// Present an error message to the user

}

func sessionWasInterrupted(_ session: ARSession) {
// Inform the user that the session has been interrupted, for example, by presenting an overlay

}

func sessionInterruptionEnded(_ session: ARSession) {
// Reset tracking and/or remove existing anchors if consistent tracking is required

}
}

错误:致命错误:在展开可选值:file时意外发现nil

线程1:致命错误:在展开可选值时意外发现nil,如下行显示:let scene = SCNScene(name: "art.scnassets/ship.scn"!

在更新Xcode(当前版本为13.0,Mac OS Big Sur版本11.6)之前,这对我来说是可行的。

想知道为什么会发生这种情况,以及如何解决这个问题?

我花了很多时间来解决这个问题。这是一个奇怪的bug。但解决方法其实很简单,只需点击"art"文件夹并取消选中"首选压缩纹理"。参见解决方案图片

你甚至可以在运行应用程序一次后再次打开它,它会完美地工作。

最新更新