我们在项目里自己做了个类似关卡编辑器的小扩展。
里面涉及到资源的地方,我们通过记录资源的UUID来保存在关卡文件中。
这样在浏览器预览是没有问题的,但是当构建版本后,发现资源的UUID变得和之前在编辑器里不同了。
导致构建的版本无法正确下载读取资源。
想咨询一下:
- 如果这个资源UUID会在构建后发生变化,我如何在编辑器和构建后找到一个统一的UUID标识?
- 如果我不用UUID来保存而改用资源路径保存的话,如果在通过一个cc.spriteFrame来获取资源的路径呢?
我们在项目里自己做了个类似关卡编辑器的小扩展。
里面涉及到资源的地方,我们通过记录资源的UUID来保存在关卡文件中。
这样在浏览器预览是没有问题的,但是当构建版本后,发现资源的UUID变得和之前在编辑器里不同了。
导致构建的版本无法正确下载读取资源。
想咨询一下:
uuid会在构建之后被压缩一下来降低包体大小,从fc991dd7-0033-4b80-9d41-c8a86a702e59压缩成fcmR3XADNLgJ1ByKhqcC5Z的样子,你需要把压缩后的uuid还原就能得到编辑器里的uuid。还原方式参考引擎代码里的decode-uuid.js
感谢回复~
但我即使可以把压缩后的UUID转换成编辑器里的也用处不大,因为我关卡文件里保存的是编辑器里的UUID,那我加载关卡下载资源的时候还是不清楚下载的目标压缩UUID。
除非我能把编辑器里的UUID转换成压缩后的~
但即使这样也要面临如果我存压缩后的,那在开发期预览的时候又和编辑器的UUID不匹配了~
其实比较好的方法应该是我存路径就行~但是
AssetDB的uuidToUrl(uuid)这个接口好像用不了~看文档说这是个内部函数~
搞定,我在assetDB里找到了queryUrlByUuid这个接口
我用这个接口把资源UUID转成资源路径,自己再把前面截取一下,就可以当资源路径存到自己的关卡文件里了~
UUID的机制不是很明白的情况下,我还是保存资源路径得了~
请问一下 assetDB 在哪里可以看到