Cc.loader可以在编辑器下加载prefab吗?

请问脚本executeInEditMode时,cc.loader可以动态加载prefab吗?我尝试了下,编辑器下加载不到,运行起来才能加载到。我在做一个提取某个文件夹下所有prefab的设置数据上传服务器的功能,如果能在编辑器下加载到prefab就好了。

编辑器下可以用 cc.AssetLibrary.loadAsset(uuid, …) 来创建出 cc.Prefab
如果要枚举项目文件夹,可以用 Editor.assetdb.queryAssets(‘xxxx/xxxx/***’, ‘cc.Prefab’, …)

1赞

蟹蟹! 

虾虾! :joy:

1赞

这个函数写在哪里能在编辑器里面执行呀?

给你的Component设置executeInEditMode参数:
http://cocos.com/docs/creator/scripting/reference/class.html#editor-
然后在编辑器的场景里添加一个节点,把这个Component挂上去。在这个Component的onLoad事件里就可以用Editor了。

摸索了一会,详细的写法是:

// 第一个参数后面的*不能去掉,代表文件夹下所有文件
// 第二个参数是prefab,不是cc.Prefab
Editor.assetdb.queryAssets('db://assets/path/to/prefabs/*', 'prefab' , function (err, prefabs) {
    ...
});
1赞