为什么我不能使用Swift 4加载Collada文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我不能使用Swift 4加载Collada文件?相关的知识,希望对你有一定的参考价值。

我正在构建一个游戏引擎,并希望为XML格式的Collada文件实现我自己的解析器。我正在尝试创建一个XMLParser来为我执行此操作但由于某些原因在加载.dae扩展时,没有任何作用。

加载文件示例:

//file = XMLParserDelegate
    if let url = Bundle.main.url(forResource: colladaFileName, withExtension: "dae") {
        if let parser = XMLParser.init(contentsOf: url) {
            parser.delegate = self
            parser.parse()
        }
    }

有趣的是,所有这些代码都被执行了。直到它调用函数“parseErrorOccurred”,我才能看到错误消息,其中指出“Document is empty”

func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
    print(parseError) //result: Document is empty
}

这就是我真正的困惑!

当我将文件的扩展名更改为.xml并将函数更改为"withExtension: "xml"时,代码编译得很好,没有错误,我可以看到所有文件数据。

我的目标是不必将我的.dae文件格式永远改为.xml。我该怎么做才能解决这个问题?

答案

我设法通过在Xcode中将其类型更改为.dae来读取Data文件的内容,如此屏幕截图所示:

enter image description here

我不知道这是否是符合您需求的解决方法,但我希望它有所帮助

以上是关于为什么我不能使用Swift 4加载Collada文件?的主要内容,如果未能解决你的问题,请参考以下文章

将 collada (dae) 文件加载到 SCNNode (Swift - SceneKit)

从scenekit中的网络服务器加载collada文件

SceneKit + Collada + 动画

Collada 几何和动画文件加载

未定义的 vertexUv 警告

带有 collada 文件的 Android vuforia