Unity 2D On Collision(做某事)不起作用?

Unity 2D On Collision (Do Something) not working?

我知道这个问题可能已经被问过很多次了,但我要问 again.For 出于某种原因,我的对撞机不起作用。我的方块精灵上有一个,'miner' 精灵上有另一个。当我点击播放时,这两个开始在彼此之上。 (我不确定这是否重要,看起来没什么区别。) 每个人都有一个 Box Collider 2D。在分配给其中之一的脚本中,它试图查看碰撞。

void OnCollisionEnter2D(Collision2D collision)
{
    if (col.gameObject.name == "Miner")
    {
        GameObject.Find("Miner").GetComponent<miner>().block = block;
    }
}

但是,这个脚本似乎没有检测到矿工 sprite 与其发生碰撞。我确定我是从 MonoBehavior 派生的,所以这不是问题。

这两个游戏对象是否都附加了 RigidBody2D?在任何给定的碰撞中,至少有一个 GameObject 需要有一个 RigidBody。

在您的代码中添加一些调试语句,以确保此方法不是 运行。您应该阅读 here 关于 unity 中的碰撞。确定这些对象是否会移动并设置适当的对撞机。如上所述,您通常需要一个刚体。