Как получить от GameObject список прикрепленных к нему компонентов? - PullRequest
0 голосов
/ 29 октября 2018

компонентов прилагается, я имею в виду под названием каждого компонента.

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. Но я хочу список в этом формате, например:

Cube1 Mesh Renderer Box Collider сфера Mesh Renderer Box Collider

В конце концов список с каждым именем объекта и его компонентами.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018
Component[] comps=gameObj.GetComponents();

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

for(inti =0;i<comps.length;i++){
complist.Add(comps[i]);
}
0 голосов
/ 29 октября 2018

Полагаю, когда вы говорите, что вам нужно имя компонента, вы на самом деле имеете в виду тип.Component.name фактически возвращает имя GameObject, к которому прикреплен Компонент, поэтому оно будет одинаковым для всех компонентов.

Вы могли бы сделать следующее

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

Интересно, зачем вам это понадобится, хотя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...