插件/编辑器模式下如何保存sprite与texture文件的关联?

  • Creator 版本:1.9.0

想写一个插件自动创建节点并设置图片. 代码大致如下:

cc.AssetLibrary.loadAsset(result.uuid, function (error, asset) {
                   sprite.spriteFrame = new cc.SpriteFrame(asset)
                })

因为加载的asset是texture2d, 只能用这种方法设置spriteFrame
在场景编辑器中可以看到图片,但是sprite组件上没有关联, 这样保存prefab之后也是无效的.
有什么方法可以解决吗? @jare

https://forum.cocos.com/t/cocoscreator2-0-2-sprites/67132
https://forum.cocos.com/t/resources/66408

这两个帖子也是相同的问题, 希望官方能够解答一下. 如果现在无法实现我就不在这浪费时间, 换其他方法了. 谢谢
@jare

已解决.

突然想到加载结果是texture2d的原因是加载了png文件, 即texture. 实际的spriteFrame路径为db://assets/xxx.png/xxx
所以需要按这个路径加载, 但并未尝试.

我是使用了

// 之前列举类型使用了'texture'导致加载出来texture2d
Editor.assetdb.queryAssets('db://xxx/**\/*', "sprite-frame", function (err, results) {
}

这个方法来列举某路径下所有spriteFrame文件保存为map来使用的.
继续写插件:grinning:

1赞

Editor.assetdb.queryAssets函数类型选择"sprite-frame"加载不出东西来的,2.0.9版本

大神!!厉害

拿到spriteFrame怎么关联啊