GameObject.GetComponents
Declaration
public T[] GetComponents();Возвращаемое значение
T[] Массив, содержащий все соответствующие компоненты типа T.
Описание
Получает ссылки на все компоненты типа T на указанном GameObject.
Типичное использование этого метода — это вызвать его на ссылке на другой GameObject, чем тот, на котором находится ваш скрипт. Например:myResults = otherGameObject.GetComponents<ComponentType>()
Однако если вы пишете код внутри класса MonoBehaviour, предшествующую ссылку на GameObject можно опустить, чтобы искать в том же GameObject, к которому прикреплён скрипт. В этом случае вы фактически вызываете Component.GetComponents потому что сам скрипт является типом компонента, но результат такой же, как если бы вы ссылались на сам GameObject. Например:myResults = GetComponents<ComponentType>()
Чтобы найти компоненты, прикрепленные к конкретному GameObject, вам нужно ссылка на это другое GameObject (или любой компонент, прикрепленный к этому GameObject). Затем вы можете вызвать GetComponents на эту ссылку.
Примечание: Если запрашиваемый тип является производным от MonoBehaviour и связанный с ним скрипт не может быть загружен, то эта функция возвратит null для этого компонента.
Следующий пример получает ссылку на все компоненты шарнирного соединения на указанном GameObject и устанавливает свойство для каждого найденного компонента шарнирного соединения.
using UnityEngine;
public class GetComponentsExample : MonoBehaviour { // Disable the spring on all HingeJoints in the referenced GameObject
public GameObject objectToCheck;
void Start() { HingeJoint[] hingeJoints;
hingeJoints = objectToCheck.GetComponents<HingeJoint>();
foreach (HingeJoint joint in hingeJoints) { joint.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponentsInChildren
Declaration
public void GetComponents(List<T> results);Параметры
| Параметр | Описание |
|---|---|
| результаты | Список, используемый для возвращаемых результатов. |
Описание
Вариант метода GetComponents, который позволяет вам предоставить свой собственный Список, который будет заполнен результатами.
Это позволяет избежать выделения новых объектов List для каждого вызова метода. Размер списка, который вы предоставляете, изменяется в соответствии с количеством найденных результатов, и любые существующие значения в списке перезаписываются.
using UnityEngine; using System.Collections.Generic;
public class GetComponentsExample : MonoBehaviour { // Disable the spring on all HingeJoints in the referenced GameObject
public GameObject objectToCheck;
void Start() { List<HingeJoint> hingeJoints = new List<HingeJoint>();
objectToCheck.GetComponents(hingeJoints);
foreach (HingeJoint joint in hingeJoints) { joint.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponentsInChildren
Declaration
public Component[] GetComponents(Type type);Параметры
| Параметр | Описание |
|---|---|
| тип | Тип компонента для поиска. |
Возвращаемое значение
Component[] Массив, содержащий все соответствующие компоненты типа type.
Описание
Нетиповая версия этого метода.
Эта версия GetComponents не столь эффективна, как версия Generic (выше), так что вы должны использовать ее только в случае необходимости.
using UnityEngine;
public class GetComponentsExample : MonoBehaviour { // Disable the spring on all HingeJoints in the referenced GameObject
public GameObject objectToCheck;
void Start() { Component[] hingeJoints;
hingeJoints = objectToCheck.GetComponents(typeof(HingeJoint));
foreach (HingeJoint joint in hingeJoints) { joint.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponentsInChildren
Declaration
public void GetComponents(Type type, List<Component> results);Параметры
| Параметр | Описание |
|---|---|
| тип | Тип компонента для поиска. |
| результаты | Список, используемый для возвращаемых результатов. |
Описание
Нетиповая версия этого метода, которая позволяет вам предоставить свой собственный список, который будет заполнен результатами.
С этой версией GetComponents метод, results является типа Component, а не тип извлекаемого компонента.
Если запрашиваемый тип является производным типа MonoBehaviour и связанный скрипт не может быть загружен тогда эта функция возвратит null для этого компонента.
using UnityEngine; using System.Collections.Generic;
public class GetComponentsExample : MonoBehaviour { // Disable the spring on all HingeJoints in the referenced GameObject
public GameObject objectToCheck;
void Start() { List<Component> hingeJoints = new List<Component>();
objectToCheck.GetComponents(typeof(HingeJoint), hingeJoints);
foreach (HingeJoint joint in hingeJoints) { joint.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponentsInChildren