在 unity3d 中碰撞对象时的增量问题

Increment issue while colliding objects in unity3d

我正在 unity3D 中创建一个用于测试目的的基本游戏,只要定义的对象发生碰撞,我就会计算对象的数量。我创建了名为 objects birds1 upto birds8 的对象,同时击中了名为 birds1、birds2 的对象。我正在尝试增加计数器,它应该将 f 的值增加 1,如果在这里击中小鸟,计数器将增加随机数而不是增加 1。我设置了一个计数器不应该增加的值超过 8 的限制,因此它在 8 的限制处停止。下面是我的代码,我正在发布我正在使用的代码。请任何人帮助我,我的代码在哪里 运行 错误。

public void OnTriggerEnter2D(Collider2D target)
    {
        if (target.gameObject.name == "bird1" || target.gameObject.name == "bird2" || target.gameObject.name == "bird3" || target.gameObject.name == "bird4" || target.gameObject.name == "bird5" || target.gameObject.name == "bird6" || target.gameObject.name == "bird7" || target.gameObject.name == "bird8" && f < 8)
        {
            f++;
            propPAnel8.SetActive(true);
            BirdText.text = "x " + f;
            if (f == 8)
            {
                bound8.isTrigger = true;
            }
        }
    }

OnTriggerEnter2D 将被调用多次,尤其是当您的碰撞体具有多个接触点时:这就是为什么 f 的增量看似随机,但在本例中并非如此。

您在碰撞过程中获得的增量与您的接触点数一样多。你想用 1 的增量实现什么?也许您需要一个布尔值,将 Collider2D 的 isTrigger 属性 设置为 false 会有所帮助,但这取决于您的游戏逻辑。