如何把 Prefab (3d模型资源) 存储到 indexDB (浏览器持久化)里?

  • Creator 版本:3.8.4

  • 目标平台:谷歌浏览器 版本 130.0.6723.117(正式版本) (64 位)

模型资源较大,我想把模型资源持久化到浏览器里,下次进入就可以避免重复请求资源了
但是通过resources.load方式,请求到的资源无法被序列化,也就意味着无法转JSON 无法储存到IndexDB里。
如果是转二进制,我不清楚 Prefab里的具体格式 ,会丢失模型信息,列如网格贴图等,只能记录,旋转、位置、缩放等信息。
那么如何将 .fbx 文件格式的 3D资源文件 储存到indexDB里?
获取资源的代码如下

resources.load("myPrefabUrl", Prefab, async (err,assets) => {
     //assets 这个对象无法被序列化
     console.log(err,assets)
});

浏览器默认缓存已下载过的资源,费什么劲自己去缓存。

1赞

我尝试过了 .fbx 的模型文件资源没有进行缓存,每次重新刷新页面依然是要下载几百MB大小的资源文件

试试base64

浏览器默认都是会做资源缓存的,如果没有缓存,
1,检查下浏览器是否关闭了缓存,开发时常用关闭的
2,服务器是否设置了缓存,没设置的需要设置

1赞

在转base64之前也需要进行序列化一样的