【发布时间】:2019-07-15 12:22:17
【问题描述】:
在我的 iOS 应用程序中,我从网络服务器下载了一个 .scn 文件,因此它被复制到本地。 在下载的文件旁边,我复制了纹理文件。相关与否:这些纹理存储在本地,而不是下载。
然后我从下载的 .scn 文件的本地 URL 创建一个 SCNReferenceNode。
我的代码中有一个 scn 文件的检查(打印):
found SCN file at file:///private/var/mobile/Containers/Data/Application/01F588F9-98AB-4EC8-A948-5165D69074B0/Documents/myTmpDir/model.scn
另外检查纹理:
FILE EXISTS at url = file:///var/mobile/Containers/Data/Application/01F588F9-98AB-4EC8-A948-5165D69074B0/Documents/myTmpDir/Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg
但是当我加载SCNReferenceNode 时,我收到以下错误:
[SceneKit] Error: Failed to load : <C3DImage 0x282455a00 src:Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg [0.000000x0.000000]>
[SceneKit] Error: Cannot load image Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg. Using dummy texture.
请注意,.scn 文件具有纹理目录的相对路径。当我通过检查应用程序的容器进行验证时,两者都在正确的位置。
如果在 XCode 中我将纹理文件目录放在 Assets.xcassets 中,则纹理加载正确。看起来纹理的相对路径不起作用。 我尝试更改工作目录,但仍然没有满意的结果。
另一个有趣的事实,如果我下载应用程序容器,并在我的 Mac 上打开 .scn 文件(纹理目录正确地位于它旁边),纹理就会正确应用。
我没有解决这个问题的想法,任何帮助将不胜感激:-)。
提前致谢!
【问题讨论】:
-
我遇到了类似的问题。我正在开发一款游戏,我将我的纹理文件夹移动到 scn.assets 文件夹中,现在即使我将文件夹放回原来的位置,也不会以编程方式加载任何图像。并且新图像也不会加载。它们都显示在场景工具包编辑器中,我可以将它们分配给模型。
标签: ios swift scenekit scnnode