SCNScene 返回 nil,导致错误

问题描述 投票:0回答:3

调用

SCNScene(named: "art.scnassets/diceCollada.scn")
时,返回nil时会发生错误。如果将 Apple 作为示例提供的
ship.scn
文件作为
(named:)
参数,也是同样的情况。我只是不知道出了什么问题。

guard let diceScene = SCNScene(named: "art.scnassets/diceCollada.scn") 
else { fatalError("Unable to load scene file.") }
    
if let diceNode = diceScene.rootNode.childNode(withName: "Dice", 
                                            recursively: true) {
    diceNode.position = SCNVector3(x: 0, y: 0, z: -0.1)
    sceneView.scene.rootNode.addChildNode(diceNode)
}

我期望“diceCollada.scn”对象出现在应用程序屏幕的ar屏幕上,但是当我调用

SCNScene(named: "art.scnassets/diceCollada.scn")
时出现错误。

ios swift scenekit arkit
3个回答
0
投票

正如 @ZAY 在评论中所说,如果您无法使用 Xcode 编辑器打开该文件,它可能会损坏。因此,否则,我建议您使用 REALITY COMPOSER 打开该文件(位于 Xcode 的开发人员应用程序中)。 可能存在文件方向问题。所以检查文件的方向。确保文件和方向文件夹被选中作为您的捆绑包的目标。


0
投票

尝试将

.scn
.png
文件从
art.scnassets
文件夹移动到 Xcode 导航窗格的根目录。如果这没有帮助,那么您的 SceneKit 场景可能已损坏或损坏,或者文件名拼写错误。


guard let diceScene = SCNScene(named: "diceCollada.scn")
else { fatalError("Unable to load scene file.") }

另请确保在将文件加载到项目中时选中了

Add to targets
框。


0
投票

我花了很多时间试图解决这个问题,移动文件没有帮助。这是一个奇怪的错误。但解决方案实际上非常简单,只需单击“art”文件夹并取消选中“首选压缩纹理”即可。 see the solution picture

运行应用程序一次后,您可以再次检查,它将完美运行。

© www.soinside.com 2019 - 2024. All rights reserved.