繁体   English   中英

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

[英]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

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

如果完美,则调用函数 else not。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM