从URL到.scn文件的SCNReferenceNode在文件旁边找不到纹理

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

在我的iOS应用中,我从网络服务器下载了.scn文件,因此该文件已在本地复制。复制下载的文件旁边的纹理文件。是否相关:这些纹理存储在本地,而不是下载。

然后我从下载的.scn文件的本地SCNReferenceNode创建一个URL。我的代码中有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文件(纹理目录正确地位于它旁边,则纹理已正确应用。

我没有解决这个问题的想法,将不胜感激:-)。

提前感谢!

ios swift scenekit scnnode
1个回答
0
投票

在.mtl文件中,有Maison%20MSG%2013%20Wapper%20snowdust/Bois234_3.jpg的引用>

删除Maison%20MSG%2013%20Wapper%20snowdust/并保留Bois234_3.jpg,因为现在可以在项目的.scnassets文件中本地访问所有图像文件

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