C# 如何获取添加到层次中所有模型和对象的所有网格碰撞器组件?

C# 如何获取添加到层次中所有模型和对象的所有网格碰撞器组件?,c#,unity3d,C#,Unity3d,为了添加它们,我在层次结构中标记并选择了所有模型和对象,然后在菜单中我做了组件>物理>网格碰撞器 但是现在我想删除/删除我添加的所有网格碰撞器。 但我想用一个脚本 我想要的是在数组中列出或列出所有网格碰撞器,然后决定如果要删除重命名或其他任何操作,如何处理每个碰撞器 GameObject.FindObjectsOfType(typeof(MonoBehaviour)); //returns Object[] GameObject.FindGameObjectsWithTag("Untagged"

为了添加它们,我在层次结构中标记并选择了所有模型和对象,然后在菜单中我做了组件>物理>网格碰撞器

但是现在我想删除/删除我添加的所有网格碰撞器。 但我想用一个脚本

我想要的是在数组中列出或列出所有网格碰撞器,然后决定如果要删除重命名或其他任何操作,如何处理每个碰撞器

GameObject.FindObjectsOfType(typeof(MonoBehaviour)); //returns Object[]
GameObject.FindGameObjectsWithTag("Untagged");  //returns GameObject[]

这将返回所有游戏对象,但这不是我需要的。

使用
FindObjectsOfType

要使用带有
FindObjectsOfType
的MeshCollider查找,请提供
MeshCollider
作为类型。将其转换为
MeshCollider
数组

    MeshCollider[] allMeshes = GameObject.FindObjectsOfType(typeof(MeshCollider)) as MeshCollider[];
    for (int i = 0; i < allMeshes.Length; i++)
    {
        allMeshes[i].enabled = false; //Optional
        Destroy(allMeshes[i]);
    }

这回答了你的问题吗?如果是这样,你可以接受它作为答案。谢谢
    GameObject[] tempObj = GameObject.FindGameObjectsWithTag("Untagged") as GameObject[];
    MeshCollider[] allMeshes = new MeshCollider[tempObj.Length];


    for (int i = 0; i < allMeshes.Length; i++)
    {
        allMeshes[i] = tempObj[i].GetComponent<MeshCollider>();
        if (allMeshes[i] != null)
        {
            allMeshes[i].enabled = false; //Optional
            Destroy(allMeshes[i]);
        }
    }