请问生成了多个 prefab 该怎么删除其中一个

但是 prefab 的 name 都是一样的啊。

自己生成的时候可以控制的

或者给个标识

我正想这么做,但是苦于不知道怎么加,能请给个例子吗?谢谢。

var monster = cc.instantiate(this.prefab);
monster.index = xxxx
this.arcs.push(monster);
monster.parent = this.sgarphics;

原来创建的同时可以这样操作,谢谢啊,还是得多向你们大神学习。

还有一个困扰多时的问题,还请指教
我是这样找到我创建的那些 prefab 的,如下
var prefabWord = cc.find(“Canvas/prefabWord”);
或者 var prefabWord = this.node.getChildByName(‘prefabWord’);
但是这样只能找到第一个,请问我是写错了吗?
十分感谢。

当然只能找到第一个,
this.arcs.push(monster);
看这个可以用数组管理,
getComponentsInChildren 或者用这个查找子节点,方法很多,理解就行

抱歉那么晚才回复您,谢谢回复,我继续研究研究。

其实我做这个就是想判断我想删除的那个节点,我在浏览器是没问题的,但是上了真机后,我发现删除一个节点挺卡的,请问这样的情况如何排查?是否我把删除方法写在了主场景中不可以?

少年,听说过对象池吗

我刚刚去研究了一下对象池,确实是和 destroy 这个方法一样的实现效果,就是这样

for(var j = 0; j < this.node.children.length; j++) { if(this.node.children[j].index == this.inputItem.string) { this.wordPool.put(this.node.children[j]) } }

以上就是我要删除的对象,功能是实现了,但是真机上还是卡,为什么放这段上去,因为我觉得就是删除的时候就会卡几秒,对象池就是为了减少资源消耗,我创建成功了,效果也实现了,但是为什么删除就会卡呢?我有些摸不着了,感谢您还能查看我的回复,谢谢。

应该不会卡呀,你删除的东西多吗,如果多,给个建议,你暂时先隐藏,node.acticve =false, 然后生成个队列来一样删除,一般除非你删除几十个才会卡呀,

或者你写过复现的demo

大哥,我后来写了个 demo 发现没有问题,很流畅。
然后我这边的大神有空帮我看了看,居然发现了是一句 cc.log 导致了卡顿
是这一句
cc.log(this.node.children, this.inputItem.string);

我把这句注释掉就很流畅了,难度说 creator 的打印也会耗性能吗?
我写的 demo 怎么发您?假如您有空的话能指点一下我的代码写法,谢谢。

打印节点是很耗性能的,上线后要把所有打印去掉

嗯,现在有经验了,十分感谢您,谢谢指导。

同样求教,prefab生成了好多子节点,我想通过触屏删除触屏位置的子节点该咋整啊

我觉得应该是在生成很多个 prefab,然后给他们都增加一个方法,点击就删除吧,像这样
for(let i = 0; i < this.node.childrenCount; i++) { if(this.node.children[i].name == 'prefabNode') { this.node.children[i].on(cc.Node.EvenType.TOUCH_START, function(e) { self.node.children[i].destroy(); } } }

预制体挂脚本,把触摸写脚本里

我去尝试尝试,谢谢!

这是Star脚本Js


这两个是Game脚本JS

请问知道怎么找到我生成的那两个star,确定他与小怪的距离,并把两个都删除呢