突然出现了一个“神奇”障碍物!

在测试此前一个弹球小游戏过程中,发现了一个神奇的现象,突然一个障碍物出现了顶端,导致游戏直接失败了,视频如下:
2月6日
2月6日 (1)
目前使用的版本是3.8.7,很小概率出现,得玩很久才会出现一次,目前出现了两次,就发现下方障碍物和上方的形状好像一样。

感觉可能原因:
1.对象池问题?每次销毁前都会将其移到很远的地方9999,然后回收对象池。会一直检测障碍物位置,大于9就会判定失败,难道是创建的一瞬间导致的吗,但是为什么会出现在这个位置?感觉可以改成-9999。

2.回收回对象池前,没有关闭缓动,导致一创建就在这个位置吗?

大概想到的只有这些情况了,欢迎各位大佬来讨论一下 :grinning:

可以考虑直接去读源码看看猜测的是否正确

你用的是cocos的对象池还是自定义的对象池,可以自定义一个对象池排除一下对象池的问题。

这个很大概率是物理系统里的碰撞组件没清理干净。你可以在结算的时候,去取看不见的碰撞组件捆绑的对象信息。判断一下是不是异常物体。比如这个碰撞组件身上能不能取到节点信息,节点是否可视化,然后你在进行碰撞逻辑处理。如果取不到节点信息,或者节点不在可视区域内,你直接下一帧销毁,返回出来。我目测的解决逻辑是这样。

image
咋感觉你这管子也有碰撞体的样子,是不是口太小,刚好卡住了 :joy:

回收的时候关了缓动试试