2.4 插件/编辑器下, 动态设置spriteFrame的问题

问大家
问题:cc.assetManager.loadAny加载完图片后,如何赋值给sprite的spriteFrame属性。
试验情况如下:
资源目录结构,assets:
·resources:
·textures:
b.png
·textures:
a.png
不管是resources里面的还是外面的
使用 cc.assetManager.loadAny({url: 绝对路径}, (err, res)=>{
//拿到的res为ImageBitmap
// sp 是addComponent(cc.Sprite)创出来的
sp.spriteFrame = new cc.SpriteFrame(res); // 打印sp.spriteFrame其_texture的值为null
});

发现 cc.assetManager.loadAny({uuid: xxx}, (err, res)=>{});可以读到spriteFrame,
直接由文件路径转uuid再去读就行了

1赞

路径转uuid我知道的有3种方法
1.Editor.assetdb.urlToUuid(“db://assets/你的文件位置.后缀名”)
2.Editor.assetdb.queryAssets(“db://assets/文件位置支持正则”, “资源类型”, function(err, results){})
results 里有uuid
3.直接fs读进绝对路径.meta,得到json,也是可以拿到uuid

注意法1法2只能在插件的main.js里用,3是通用的

楼主这个问题解了吗?