Unity:碰撞矩阵已设置,但碰撞器仍会触发

问题描述 投票:0回答:1

我想设置我的播放器与之交互的图层,但它仍然会触发不需要的图层。 我在项目设置中禁用了整个碰撞矩阵:

这是我的播放器设置:

和 ProjectileCleaner 设置:

我将下一个脚本附加到“玩家”游戏对象,但我的玩家仍然使用“ProjectileCleaner”层触发。为什么?

public class PlayerCollisionController : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D other)
    {
        Debug.Log("trigger: " + other.name);
    }
}
unity-game-engine collision-detection
1个回答
0
投票

因为层碰撞矩阵只影响(物理)碰撞检测,并且触发相关的回调总是会被调用,如果你不关心它们,就忽略它们。

void OnTriggerEnter2D(Collider2D other)
{
    if(other.gameObject.CompareTag("ProjectileCleaner"))
        return;
}
© www.soinside.com 2019 - 2024. All rights reserved.