已传demo,克隆同一预制,挂载的脚本是同一个实例?

当前测试基于官方例子Shooter修改:
放生碰撞时不调用destroy,而是从父节点中移除,并执行回调,方便回收到对象池。如下图:

------------分割线----------

发现的问题:当第一个子弹还没碰到上端白块,第二个子弹已经生成,当第一个碰到白块消失时,第二个也消失了,不奇怪么?

跟踪发现:这两个子弹实例取出的组件‘Bullet’居然是同一个,所以第一个碰撞时执行了移除操作,于是第二个也跟着移除了。。

什么鬼?人呢?

不觉得这是个问题吗?还是我处理有问题?求解啊

官方的示例有问题吗?如果官方的示例没有问题,那就可能是你修改的问题啊,如果你觉得可能是creator的问题,麻烦你弄个简单的demo贴上来,这样官方大神才好帮你看啊,从你贴的代码片段根本看不出来什么啊

抱歉没看出是什么原因,怀疑是对象池的使用上有点错误导致的。

NewProject222.zip (498.3 KB)

hello demo已上传,有劳看看、指教,谢谢。

demo传了 能帮忙看下么?哥们儿在论坛很活跃啊 谢谢。

demo已传 有劳看看 谢谢。NewProject222.zip (498.3 KB)

问题找到了,是因为你的_endFunc,至于具体原因我也不清楚

你把_endFunc声明成bullet的成员属性就没问题了

还有对象池的用法你可能需要看看文档

http://www.cocos.com/docs/creator/scripting/pooling.html

1赞

非常感谢。
半小时前定位到这了,原因是_endFunc未作为其成员属性,且放在该类的外部, 同一个文件内,此时该变量相当于是一个static变量,故多个实例拿到的是同一个东西,所以导致了上面的问题。js刚入手,许多低级错误。感谢您的测试。

这个我也不是很清楚,JS我大概会用,但是很多底层原理还没来得及学:joy: