/**
* 在编辑模式下为节点添加一个组件,调用此方法者必须 @executeInEditMode
* @param type 类型 如 cc.Sprite
* @param node node节点
* @param dbPath 默认资源的 db path
*/
static addComponent(type: {new(): T}, node: cc.Node, dbPath: string): T
{
let c = node.getComponent(type);
if(CC_EDITOR)
{
if(!c)//不能重复添加
{
c = node.addComponent(type);
}
let uuid;
//let path = ‘db://assets/resources/xxxx/xx/xxxx/test.png’;
eval(uuid = Editor.assetdb.remote.urlToUuid('${dbPath}'));
cc.loader.load(
{
url: dbPath,
type: ‘uuid’,
uuid: uuid
},
function (err, asset: cc.Texture2D) {
if(dbPath.search(".png") > -1)//png类型
{
c.spriteFrame = new cc.SpriteFrame(asset);//这里赋值后,检查器上没有更新,Sprite Frame还是空的,但是编辑器中能看到图片。保存后,再切一下场景回来,图片也不显示了!!!
}
else
{
eval(“Editor.log(‘No suport res!!!’)”);
}
}
);
}
}
谢谢解答!
