Unity - 删除在另一个实例之上生成的其他实例,但保留原始实例

Unity - Deleting other instances spawning on top of another, but keeping the original

所以,我正在 Unity 中进行一些关卡生成,并且我在世界各地生成了一些立方体。我现在的工作方式是,每个地砖都会检查它周围是否有 'air',如果有,它会生成一堵墙。但是,如果我遇到的情况是两层楼之间有一个空气块,它会产生两堵墙。 有没有一种方法可以检查同一位置是否有多个,但要防止其中一个被破坏? 谢谢!

p.s 同样一文不值,我使用 Raycasts 放置墙壁,所以地板会在 4 个方向上检查一次。我认为它在放置立方体时会不停地检查所有 4 个方向。所以,可能是个问题...

你可以尝试在光线投射的地方制作一个重叠球体,这样在一定半径内的所有物体都会被检测到(所以也检测到彼此中的物体)

void GetWalls(Vector3 raycastTargetPosition, float radius)
    {
        Collider[] hitColliders = Physics.OverlapSphere(center, radius);
        int i = 0;
        while (i < hitColliders.Length)
        {
            hitColliders[i].SendMessage("AddDamage");
            i++;
        }
    }