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

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