我如何从GameObject中获取附加到它的组件列表?

时间:2018-10-29 00:15:18

标签: c# unity3d

附加的组件我的意思是每个组件的名称。

var list = gameObj.GetComponents(typeof(Component));
                if (!componentsList.Contains(gameObj.name))
                    componentsList.Add(gameObj.name);
                for (int i = 0; i < list.Length; i++)
                {
                    if (!componentsList.Contains(list[i].name))
                        componentsList.Add(list[i].name);
                }

此代码仅使用GameObjects创建一个List。 但是我想要一个这种格式的列表,例如:

多维数据集1  网格渲染器  撞机箱 球  网格渲染器  撞机箱

最后是一个列表,其中包含每个对象名称及其组成部分。

2 个答案:

答案 0 :(得分:4)

我假设当您说需要组件名称时,实际上是在说类型。 Component.name实际上返回组件所连接到的GameObject的名称,因此所有组件都相同。

您可以执行以下操作

    foreach(var component in GetComponents()) {
        Debug.Log(component.GetType());
    }

我想知道您为什么会需要...

答案 1 :(得分:-1)

Component[] comps=gameObj.GetComponents();

List<Component> complist= new List<Component>();

for(inti =0;i<comps.length;i++){
complist.Add(comps[i]);
}