C# 一个脚本拾取混合层中的多个Physics2D.OverlapperBox出现问题

C# 一个脚本拾取混合层中的多个Physics2D.OverlapperBox出现问题,c#,unity3d,C#,Unity3d,所以,我试图在我的2D游戏中制造一个Twomp风格的敌人,我有两个重叠框,这样我可以用差异检查大小来检查差异碰撞 现在你可以看到,物体上有一个绿色的轮廓和一个红色的轮廓。当红色轮廓线与“地面”层中的对象重叠时,红色轮廓线将显示为真,绿色轮廓线也应显示为真,但显示在“玩家”层上,并显示在下面的代码中) 好的,现在的问题是,即使在“玩家”层中没有任何东西,检测到的结果仍然是真的,因为它也会在“地面”层触发。绿色区域也表示“玩家”层对象的存在,并且每当我使用玩家角色跳入红色区域时,它应该只在“地面”层

所以,我试图在我的2D游戏中制造一个Twomp风格的敌人,我有两个重叠框,这样我可以用差异检查大小来检查差异碰撞

现在你可以看到,物体上有一个绿色的轮廓和一个红色的轮廓。当红色轮廓线与“地面”层中的对象重叠时,红色轮廓线将显示为真,绿色轮廓线也应显示为真,但显示在“玩家”层上,并显示在下面的代码中)


好的,现在的问题是,即使在“玩家”层中没有任何东西,检测到的结果仍然是真的,因为它也会在“地面”层触发。绿色区域也表示“玩家”层对象的存在,并且每当我使用玩家角色跳入红色区域时,它应该只在“地面”层进入时触发,它仍然会触发。我试着对重叠框中的一个进行注释,但没有效果,我真的不知道该怎么做。

您能告诉我们如何设置两个不同的层遮罩吗?另外,你能确认玩家和地面物体都设置了正确的标签吗?@PhilippLenssen不确定你所说的设置图层蒙版是什么意思,但希望和帮助。此外,我可以确认地面和球员都有正确的图层/标签显示
void FixedUpdate()
    {  

        onGround = Physics2D.OverlapBox((Vector2)transform.position, collisionSize, groundLayer);

        Detected = Physics2D.OverlapBox((Vector2)transform.position, detectionSize, playerLayer);

        if (Detected && !onGround) {
            //StartCoroutine(Slamdown());
        }

    }