当一组中至少有一个射弹击中目标时,如何每组只调用一次函数?
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 颗弹丸的子弹时,每颗命中目标的弹丸都会对目标造成伤害,但无论命中多少弹丸,都只会将其击退一次。
当霰弹枪发射一组子弹时,假设有 1 或 20 颗子弹击中目标:如何在每次准确射击时只调用一次函数,而不是每次子弹碰撞调用一次?
在射弹或目标本身上使用 OnCollisionEnter 时,每次单独的弹丸碰撞都会调用该方法。
我应该使用事件来解决这个问题吗?我该怎么做?
编辑: 啊,我弄清楚后忘记编辑它了。我想有些人可能误解了我的问题。
在 OnCollisionEnter
中找到 ContactPoint.points
.
现在您可以在此处使用您的 准确度 计算并找出哪一个是完美的。
如果完美,则调用函数,否则不调用。
如果有人偶然发现了这一点,我的方法是为武器的每次射击生成一个唯一的 ID,并将其分配给该射击中的每个射弹。然后,任何击中目标的射弹都会检查该唯一 ID 是否已调用该方法。这样一来,当你发射一发有 20 颗弹丸的子弹时,每颗命中目标的弹丸都会对目标造成伤害,但无论命中多少弹丸,都只会将其击退一次。