Unity3d 碰撞检测(车门)

Unity3d 碰撞检测(车门),unity3d,collision-detection,Unity3d,Collision Detection,我正在Unity3D中制作一个恐怖游戏,目前我正在尝试创建脚本,当玩家靠近门时,可以打开门。问题是没有检测到门碰撞器和播放器之间的碰撞 我给了玩家一个刚体组件,而门没有。我已经写了脚本,让玩家通过点击鼠标打开门,但我想让他这样做,只有当他靠近他们。我尝试使用: void OnCollisionEnter(Collision coll) { if (coll.gameObject.CompareTag("Player")) { isTouched = true; //is

我正在Unity3D中制作一个恐怖游戏,目前我正在尝试创建脚本,当玩家靠近门时,可以打开门。问题是没有检测到门碰撞器和播放器之间的碰撞

我给了玩家一个刚体组件,而门没有。我已经写了脚本,让玩家通过点击鼠标打开门,但我想让他这样做,只有当他靠近他们。我尝试使用:

void OnCollisionEnter(Collision coll) {
    if (coll.gameObject.CompareTag("Player")) {
        isTouched = true;  //isTouched means that the door collider has been touched
    }
}

但它无法检测到碰撞,我也无法解释原因。因此,我尝试使用OnTiggerEnter,但仍然没有检测到碰撞。是否有人知道它们未被检测到的原因?

因此,如果碰撞不起作用,即从未调用OnCollisionCenter,则说明您的设置有问题。你能给我们看一下选手和门的对撞机和刚体吗,特别是如果他们已经检查过的话?对于碰撞,两个对象都必须连接碰撞器和非运动学刚体,才能触发这些函数的调用。检查门是否在附近的另一种方法是:将当前鼠标位置转换为光线,将其射入世界,然后查看它是否在一定距离内击中门。您好,非常感谢。事实上,问题是iskinetic选项,我没想到这就是问题所在。现在我将使用一条光线,正如你所说的,我将检查距离。非常感谢!确保两个对象都是hve碰撞器,然后展开门的碰撞器