当一组中至少有一个射弹击中目标时,如何每组只调用一次函数?

When at least one projectile out of a group hits the target, how to call a function only once per group?

当霰弹枪发射一组子弹时,假设有 1 或 20 颗子弹击中目标:如何在每次准确射击时只调用一次函数,而不是每次子弹碰撞调用一次?

在射弹或目标本身上使用 OnCollisionEnter 时,每次单独的弹丸碰撞都会调用该方法。

我应该使用事件来解决这个问题吗?我该怎么做?

编辑: 啊,我弄清楚后忘记编辑它了。我想有些人可能误解了我的问题。

OnCollisionEnter 中找到 ContactPoint.points.

现在您可以在此处使用您的 准确度 计算并找出哪一个是完美的。

如果完美,则调用函数,否则不调用。

如果有人偶然发现了这一点,我的方法是为武器的每次射击生成一个唯一的 ID,并将其分配给该射击中的每个射弹。然后,任何击中目标的射弹都会检查该唯一 ID 是否已调用该方法。这样一来,当你发射一发有 20 颗弹丸的子弹时,每颗命中目标的弹丸都会对目标造成伤害,但无论命中多少弹丸,都只会将其击退一次。