Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

Component.GetComponentsInChildren

Declaration

public T[] GetComponentsInChildren();

Возвращаемое значение

T[] Массив, содержащий все соответствующие компоненты типа T.

Описание

Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любой дочерний компонент GameObject.

Типичное использование этого метода состоит в том, чтобы вызвать его из MonoBehaviour скрипт (который сам по себе является типом компонента), чтобы найти ссылки на другие компоненты или MonoBehaviours приложенные к этому документу GameObject как этот скрипт или его дочерний GameObjects. В этом случае вы можете вызвать метод без указания предшествующего объекта. Например:

myResults = GetComponentsInChildren<ComponentType>()

Вы также можете вызвать этот метод со ссылкой на другой компонент, который может быть прикреплен к другому GameObject. В этом случае GameObject к которому прикреплен этот компонент, и его дочерние объекты. Например:

myResults = otherComponent.GetComponentsInChildren<ComponentType>()

Этот метод проверяет GameObject на котором он называется первым, затем проклинает вниз через всех детей GameObjects с помощью глубинного поиска и находит все соответствующие компоненты типа T не указано.

Чтобы найти компоненты, присоединенные к другим GameObjects, вам нужно ссылка на эту другую GameObject (или любого прикрепленного к нему компонента) GameObject). Затем вы можете позвонить GetComponentsInChildren на эту ссылку.

Следующий пример получает ссылку на все компоненты шарнирного соединения на одном и том же GameObject как скрипт, или любой из его дочерей, и если найдено, устанавливает свойство на этих компонентах.

using UnityEngine;

public class GetComponentsInChildrenExample : MonoBehaviour { public Component[] hingeJoints;

void Start() { hingeJoints = GetComponentsInChildren<HingeJoint>();

foreach (HingeJoint joint in hingeJoints) joint.useSpring = false; } }

Примечание: Если запрашиваемый тип является производным MonoBehaviour и связанный с ним скрипт не может быть загружен, то этот метод возвращает null Дополнительные ресурсы: Component и GameObject справочные страницы класса, описывающие другие варианты GetComponent семейство методов.

Declaration

public T[] GetComponentsInChildren(bool includeInactive);

Параметры

Параметр Описание
includeInactive Включать ли неактивный дочерний объект GameObjects в поиск.

Возвращаемое значение

T[] Массив, содержащий все соответствующие компоненты типа T.

Описание

Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любой дочерний компонент GameObject, включая неактивные.

Сначала проверяет GameObject, для которого вызван метод, затем рекурсивно обходит все дочерние объекты GameObject поиском в глубину и находит все соответствующие компоненты типа T, указанного здесь.

Чтобы включить неактивные дочерние объекты GameObject, задайте для параметра includeInactive значение true. Объект GameObject, для которого вызван метод, проверяется всегда независимо от значения этого параметра.

Declaration

public void GetComponentsInChildren(List<T> results);

Параметры

Параметр Описание
результаты Список, используемый для возвращаемых результатов.

Описание

Вариант метода GetComponentsInChildren, который позволяет вам предоставить свой собственный Список, который будет заполнен результатами.

Это позволяет избежать выделения новых объектов List для каждого вызова метода. Размер списка, который вы предоставляете, изменяется в соответствии с количеством найденных результатов, и любые существующие значения в списке перезаписываются.

Declaration

public void GetComponentsInChildren(bool includeInactive, List<T> result);

Параметры

Параметр Описание
includeInactive Включать ли неактивный дочерний объект GameObjects в поиск.
результаты Список, используемый для возвращаемых результатов.

Описание

Вариант метода GetComponentsInChildren, который позволяет вам предоставить свой собственный Список для заполнения результатами, и включает неактивную дочернюю GameObjects.

Это позволяет избежать выделения новых объектов List для каждого вызова метода. Размер списка, который вы предоставляете, изменяется в соответствии с количеством найденных результатов, и любые существующие значения в списке перезаписываются.

Declaration

public Component[] GetComponentsInChildren(Type t, bool includeInactive);

Параметры

Параметр Описание
t Тип компонента для поиска.
includeInactive Включать ли неактивный дочерний объект GameObjects в поиск.

Возвращаемое значение

Component[] Массив всех найденных компонентов, соответствующих указанному типу.

Описание

Нетиповая версия этого метода.

Эта версия GetComponentsInChildren не столь эффективна, как версия Generic (выше), так что вы должны использовать ее только в случае необходимости.