GameObject.GetComponent
Declaration
public T GetComponent();Возвращаемое значение
T Ссылка на компонент указанного типа, возвращаемая как объект типа T. Если компонент не найден, возвращается null.
Описание
Получает ссылку на компонент указанного типа, предоставляя тип компонента в качестве параметра типа для общего метода.
GetComponent возвращает только первый соответствующий компонент, найденный на GameObject, и компоненты не проверяются в определенном порядке. Если есть несколько компонентов одного типа и вам нужно найти определенный компонент, используйте GameObject.GetComponents и проверить список возвращенных компонентов, чтобы определить тот, который вы хотите.
Примечание: если запрашиваемый тип является производным от MonoBehaviour, а скрипт, в котором он объявлен, не удаётся загрузить, то эта функция возвращает `null` для такого компонента. Это может произойти, если имя класса задано неоднозначно. См. Скрипты именования в Руководстве для получения дополнительной информации о соображениях, касающихся наименования.
Типичное использование этого метода — это вызвать его на ссылке на другой GameObject, чем тот, на котором находится ваш скрипт. Например:ComponentType myComponent = otherGameObject.GetComponent<ComponentType>()
Чтобы найти компоненты, прикрепленные к другим GameObjects, вам нужно ссылка на это другое GameObject, или к любому компоненту, присоединенному к этому GameObject. Затем вы можете вызвать GetComponent на эту ссылку.
Вы также можете использовать этот метод для получения ссылки на компонент на GameObject, к которому прикреплен этот скрипт, вызвав этот метод внутри MonoBehaviour-производного класса, прикреплённого к GameObject. Вы можете опустить предшествующую GameObject квалификатор для ссылки на GameObject, к которому присоединен скрипт. В этом случае вы на самом деле вызываете Component.GetComponent потому что сам скрипт является типом компонента, но результат такой же, как если бы вы ссылались на сам GameObject. Например:ComponentType myComponent = GetComponent<ComponentType>()
В следующем примере получается ссылка на компонент шарнирного соединения на ссылке GameObject, и если она найдена, устанавливается свойство на ней.
using UnityEngine;
public class GetComponentExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { HingeJoint hinge = otherGameObject.GetComponent<HingeJoint>(); // Perform null check to confirm a valid HingeJoint component was successfully returned. if (hinge != null) { hinge.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponents
Declaration
public Component GetComponent(Type type);Параметры
| Параметр | Описание |
|---|---|
| тип | Тип компонента для поиска, указанный как объект Type. |
Возвращаемое значение
Компонент Ссылка на компонент указанного типа, возвращаемая как тип Component. Если компонент не найден, возвращается null.
Описание
Получает ссылку на компонент указанного типа, предоставляя тип компонента в качестве параметра метода.
Эта версия GetComponent не так эффективна, как общая версия. Используйте эту версию только в случае необходимости.GetComponent возвращает только первый соответствующий компонент, найденный на GameObject, и компоненты не проверяются в определенном порядке. Если есть несколько компонентов одного типа и вам нужно найти определенный компонент, используйте GameObject.GetComponents и проверить список возвращенных компонентов, чтобы определить тот, который вы хотите.
Примечание: если запрашиваемый тип является производным от MonoBehaviour, а скрипт, в котором он объявлен, не удаётся загрузить, то эта функция возвращает `null` для такого компонента. Это может произойти, если имя класса задано неоднозначно. См. Скрипты именования в Руководстве для получения дополнительной информации о соображениях, касающихся наименования.
Типичное использование этого метода — это вызвать его на ссылке на другой GameObject, чем тот, на котором находится ваш скрипт. Например:ComponentType myComponent = otherGameObject.GetComponent(typeof(ComponentType)) as ComponentType
Чтобы найти компоненты, прикрепленные к другим GameObjects, вам нужно ссылка на это другое GameObject, или к любому компоненту, присоединенному к этому GameObject. Затем вы можете вызвать GetComponent на эту ссылку.
Вы также можете использовать этот метод для получения ссылки на компонент на GameObject, к которому прикреплен этот скрипт, вызвав этот метод внутри MonoBehaviour-производного класса, прикреплённого к GameObject. Вы можете опустить предшествующую GameObject квалификатор для ссылки на GameObject, к которому присоединен скрипт. В этом случае вы на самом деле вызываете Component.GetComponent потому что сам скрипт является типом компонента, но результат такой же, как если бы вы ссылались на сам GameObject. Например:ComponentType myComponent = GetComponent(typeof(ComponentType)) as ComponentType
В следующем примере получается ссылка на компонент шарнирного соединения на ссылке GameObject, и если она найдена, устанавливается свойство на ней.
using UnityEngine;
public class GetComponentExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { // This version of this method returns a Component, so use the as operator to safely // convert it to the derived HingeJoint type HingeJoint hinge = otherGameObject.GetComponent(typeof(HingeJoint)) as HingeJoint; // Perform null check to confirm that the returned type was successfully converted to HingeJoint. if (hinge != null) { hinge.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponents
Declaration
public Component GetComponent(string type);Параметры
| Параметр | Описание |
|---|---|
| тип | Имя типа компонента для поиска, указанное в виде строки. |
Возвращаемое значение
Компонент Ссылка на компонент указанного типа, возвращаемая как тип Component. Если компонент не найден, возвращается null.
Описание
Получает ссылку на компонент указанного типа, предоставляя имя типа компонента в качестве параметра метода.
Эта версия GetComponent не так эффективна, как общая версия. Используйте эту версию только в случае необходимости.GetComponent возвращает только первый соответствующий компонент, найденный на GameObject, и компоненты не проверяются в определенном порядке. Если есть несколько компонентов одного типа и вам нужно найти определенный компонент, используйте GameObject.GetComponents и проверить список возвращенных компонентов, чтобы определить тот, который вы хотите.
Примечание: если запрашиваемый тип является производным от MonoBehaviour, а скрипт, в котором он объявлен, не удаётся загрузить, эта функция возвращает `null` для такого компонента. Это может произойти, если имя класса задано неоднозначно. См. Скрипты именования в Руководстве для получения дополнительной информации о соображениях, касающихся наименования.
Типичное использование этого метода — это вызвать его на ссылке на другой GameObject, чем тот, на котором находится ваш скрипт. Например:ComponentType myComponent = otherGameObject.GetComponent("ComponentType") as ComponentType
Чтобы найти компоненты, прикрепленные к другим GameObjects, вам нужно ссылка на это другое GameObject, или к любому компоненту, присоединенному к этому GameObject. Затем вы можете вызвать GetComponent на эту ссылку.
Вы также можете использовать этот метод для получения ссылки на компонент на GameObject, к которому прикреплен этот скрипт, вызвав этот метод внутри MonoBehaviour-производного класса, прикреплённого к GameObject. Вы можете опустить предшествующую GameObject квалификатор для ссылки на GameObject, к которому присоединен скрипт. В этом случае вы на самом деле вызываете Component.GetComponent потому что сам скрипт является типом компонента, но результат такой же, как если бы вы ссылались на сам GameObject. Например:ComponentType myComponent = GetComponent("ComponentType") as ComponentType
В следующем примере получается ссылка на компонент шарнирного соединения на ссылке GameObject, и если она найдена, устанавливается свойство на ней.
using UnityEngine;
public class GetComponentNonPerformantExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { // This version of this method returns a Component, so use the as operator to safely // convert it to the derived HingeJoint type HingeJoint hinge = otherGameObject.GetComponent("HingeJoint") as HingeJoint; // Perform null check to confirm a valid HingeJoint component was successfully returned. if (hinge != null) { hinge.useSpring = false; } } }
Дополнительные ресурсы: Component, GameObject.GetComponents