相同物体碰撞 主动方和被动方

我有一个项目中 发射球的,类似2048的合成玩法 , 但是项目中 有一个问题,
谁吃谁的问题:因为每个球上面都挂相同的 一模一样的脚本, 根据tag值来融合吃掉对方,
如图所示,1号球为发射球,如果我把 1号球发射 碰撞到 2号球,应该为1号吃掉2号球,并且数字变为4,
并且按照1号原来移动的轨迹 继续朝前方移动,但是现在的问题是,有可能,1号撞到2号球时候,1号球被2号球吃了,2号球变为数字4 并且停留在原地不会动了,
因此:我的问题是 两个物体碰撞怎么解决 谁是主动被动的问题 ,我用获取刚体的速度 来判断,但是不是很好,总有问题,不知道是不是速度获取方法不对,m_rigidbody.linearVelocity 物体发生碰撞时 ,我用这个获取速度

感谢各位答复!

发射前自己记录发射球 只对self是发射球的碰撞进行处理。 or 类似的思路

多谢回答,我用这个逻辑 设置tag值, 因为本来 数字2的 tag都是2,现在我把发射球tag设置为1,1吃掉2, 但问题在于 如果我发射出去没吃到2号球,什么时候将1号球的tag变为原来的2

…你这个游戏难道随时都可以击球? 下一次击球前变回去 或者发射球多一个速度监听 接近0时让它变成0 同时将tag重置为2

如果两个球都在动,还有主动被动之分么

如果场内两个球都在运动的话 速度快的吃掉速度慢的 有主动被动之分

差不多是的,发射出去2秒 就生成发射球,就又可以继续鼠标点击发射,如果上一个发射出去的球 没合成 或者没停下来 ,又发射一个球的话 ,两个球tag都是1了 又回到原来的问题了;‘
速度监听用哪个方法或者函数? 我认为我获取物体速度 不对,获取到的是一个 向量,向量怎么表示速度?

考虑一下用一个变量来标志发射者,这个变量可以增长,越晚发射的越大,两个碰在一起,大的吃掉小的。

速度是向量啊 2d 3d

速度不应该是 number吗? 是向量cc.ve2的话 两个向量如何比较大小?

xx + yy

求长度

好的 多谢

感谢回答,这个应该也可以,我把所有发射的球 存入集合 后面的吃掉前面的