我编写了这些代码行,但是当我开始时,我将报告以下错误:
2017-10-02 19:53:38.856088 + 0200 SceneViewApp [38539:1262873] 致命错误:在解包可选值时意外发现nil
但该文件位于显示的文件夹中。
我将3d模型保存为.dae并转换为.scn
我该如何解决这个问题?谢谢
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene(named: "3Dmodels/coffee.scn")!
_ = scene.rootNode.childNode(withName: "coffee.scn", recursively: true)!
}
}
答案 0 :(得分:0)
由于错误发生在这一行:
_ = scene.rootNode.childNode(withName: "coffee.scn", recursively: true)!
看起来没有名为" coffee.scn"的子节点,这意味着childNode(withName:recursively:)
返回nil
,然后强制解包({{1} })触发致命错误。
如果没有您正在处理的资产,我无法真正告诉您节点的名称应该是什么。
我没有看到节点名称包含文件扩展名(" .scn")的原因,因此可能是该节点刚被调用" coffee" 。您可以在Xcode中打开资产文件,然后选择要查找的节点,并在Node Inspector中查看其名称。您还可以枚举所有子节点(使用!
)并打印其名称以查看所有可能节点名称的列表。