uni-app IOS的threeJS本地obj、mtl文件的读取
最近有个项目获取的是基于3D模型的obj文件与材质mtl文件的获取进行渲染控制,使用的混合开发框架是uniapp,其中遇到的问题是IOS端的obj、mtl文件的获取有问题,不知道是不是权限的问题导致相对路径读取不出来,所以改用后后h5+的sdk来获取文件的路径,然后分配给OBJLoader和MTLLoader,从而在IOS端读取出obj文件和mtl文件,大致方法如下:
plus.io.resolveLocalFileSystemURL("_www/static/", entry => {
let directoryReader = entry.createReader()
directoryReader.readEntries(entries => {
entries.map(async item => {
if (item.name === 'PRO.mtl') {
self.mtl = await item.__remoteURL__
}
if (item.name === 'PRO.obj') {
self.orl = await item.__remoteURL__
self.init()
self.addModel()
}
})
}, err => {
console.log('faile')
})
})
其中__remoteURL__就是H5+读取到的文件的地址,’__www/static/'是uniapp默认的静态文件目录,需要注意的是获取是异步的,要实在获取到地址再渲染,实现思路大体上就是这样,如有哪里描述不好的,欢迎联系修正。