1

我知道以前有人问过这个问题,但我在任何地方都找不到答案,所以请不要将其标记为重复。

我正在尝试在 Unity 中制作一个 2D 游戏,其中我需要检测子弹击中敌人。

我在敌人预制件和子弹预制件上都有一个 Box Collider 2D 和一个 Rigidbody 2D。

首先,我尝试在未选中“Is Trigger”框的情况下进行操作。

这是我使用的代码:

function OnCollisionEnter2D(coll: Collision2D)
{
    Debug.Log("Detected !");
}

没有成功。

接下来,我尝试在“已触发”框中进行检查,并使用以下代码:

function OnTriggerEnter2D(other: Collider2D)
{
    Debug.Log("Detected !");
}

再一次,没有成功...

我在两个对象上拥有的组件都是“Box Collider 2D”。

我尝试的两种方法都没有返回任何错误消息,只是没有调用函数。

如果有人知道发生了什么,请尽快让我知道 - 在此之前我无法继续开发我的游戏:/

这是 Unity 的错误吗?我应该报告吗?

此外,这是其中一个对象的检查器屏幕截图: 截屏

向任何可以回答我所有问题的人干杯!对不起,如果我没有正确格式化我的帖子,我对论坛有点陌生......

Fjpackard。

4

2 回答 2

6

您必须将Rigidbody2D添加到敌人和子弹预制件(停用重力)。

通过在两个预制件中进行此修改,它必须工作。

于 2015-02-06T08:21:58.533 回答
1

好的,所以我想通了...

我实际上使用的是旧版本的 Unity——就这么简单!

感谢所有帮助过的人。

干杯,Fjpackard。

于 2015-02-06T23:14:27.217 回答