Cocos Creator 如何通过Prefab的名字来创建一个预制?

在开发过程中遇到这样的需求,我们会制作很多的预制,希望在使用到它的时候,能够动态创建。
在组件的 properties 中添加
playerPrefab:{
default: null,
type: cc.Prefab,
},
然后将预制关联到这个组件的形式,是【不被接受的】,
我希望能够通过类似这样的形式去创建预制:
var pf = cc.Prefab(“PlayerPrefab”)
var pfInstance = cc.instantiate(pf);

这样,我们就可以在一些数据表格(比如说地图数据表)中,通过配置名字的形式去动态创建对象。

请问有什么方法吗?


关闭,其实预制也就几个,关联后再更改,也未尝不可。

不是很懂你的意思,不过可以通过cc.loader动态加载预制来动态创建

只能异步加载,不能同步加载:

cc.loader.loadRes("your.prefab", cc.Prefab, function(err, prefab) {
  if (err) {
    console.error(err);
    return;
  }
  var inst =  cc.instantiate(prefab);
}

这个方法只能加载resources里的

1赞

兄嘚,我正在想你同样的问题,请问解决了吗,我在用new cc.prefab(),然后instantiate实例出来,不行:sweat_smile:,请问您是怎样解决的:pensive:

通过映射 异步来加载