creator项目资源读取路径设置的问题,jsb.fileUtils.setSearchPaths 求助

jsb.fileUtils.setSearchPaths(searchPaths);
jsb.fileUtils.setSearchResolutionsOrder(resDirOrders);
对creator使用编辑器编辑出来的资源,场景还有效吗?

我看到main.js里面有:
cc.AssetLibrary.init({
libraryPath: ‘res/import’,
rawAssetsBase: ‘res/raw-’,
rawAssets: settings.rawAssets,
packedAssets: settings.packedAssets
});

我之前使用cocos-js的时候,一直把场景和图片通过下载的方式,下载到另一个目录,比如sd卡,或者iOS的library。然后制定搜索路径的顺序。这样就可以在线看到资源的更新了。
现在creator编辑器拖入的资源,路径好像是死的。都是asset/res。
我之前需求,现在还能实现吗?

人工手动置顶

setSearchResolutionsOrder 没用

你的需求可以实现,不过要按照 Creator 的 library 组织方式去下载,看一下 build 出来的 res 文件夹就知道了,然后把你下载的内容设置为高优先级的 searchPath (在 searchPaths 数组中提前)

谢谢你的回复~

“按照 Creator 的 library 组织方式去下载” 是什么意思?res文件我看了,一个是装场景,动画等json的import,另一个装图片testure。
1SearchPaths是一段绝对路径 加上 资源的相对路径对吧。我想知道绝对路径是到哪里。
2SearchPaths它的设置,跟cc.AssetLibrary.init这里面对路径的设置,有没有冲突,我具体应该理解这两个,对它们进行处理呢?
3 SearchPaths是对所有资源的加载都有效吗?无论代码添加的,还是编辑器里关联的,无论是load场景,还是声音。
4场景我看到文件夹和名字都是各种字母+uuid标识的,这些字母或者uuid,当我在编辑器修改场景的时候,重新保存会变吗?如果会变的话,相对路径就是变化的,下载到包里也不能正确读到了。

我有几个需求都会用到这种方式,我觉得还是蛮常见的。比如
1 app只有关卡1,后面的关卡购买了才自动下载。
2 道具,场景已主题包的形式做好,用户按需求购买下载。
希望能说明的详细点。非常感谢~

就是说你得按照 res 里面的路径和文件存放方式去存储到下载目录中,否则用搜索路径无法覆盖。

路径是你自己决定的下载位置吧

SearchPath 更底层,AssetLibrary 实际上是通过 uuid 去找到资源相对路径,然后这个相对路径(相对于 res 文件夹)和 SearchPath 拼接就可以得到文件了

uuid 自然是不会改变的,uuid 到 url 的映射用户不需要关系,由编辑器管理,在打包过程中,如果发现冲突,是会报错的

谢谢,我大概明白了.
是不是setSearchPaths([‘下载路径’ ,‘包路径/asset’] ) 这样,就会先搜索下载路径+相对路径,否则就直接是默认的原路径了。(android)
那么setSearchPaths([’’] )的话会返回什么路径?

你好 ,刚接触creator遇到了你相同的问题,就是android端当进行版本更新时,更新的内容有图集,根据官方文档图集要放到resources文件夹下,是不是说我在项目制作过程中将图集放在resources目录下,然后构建项目,版本更新时,将构建的图集下载到手机端(如data\data\包名\files\构建的图集路径)通过jsb.fileUtils.setSearchPaths(data\data\包名\files\)最后通过cc.loader.loadRes()就可以动态加载图集了?