问大家
问题: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是通用的
楼主这个问题解了吗?