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

Component.GetComponent

Declaration

public T GetComponent();

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

T Ссылка на компонент типа T, если таковой найден, в противном случае null.

Описание

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

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

myResults = GetComponent<ComponentType>()

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

myResults = otherComponent.GetComponent<ComponentType>()

Обратите внимание: GetComponent возвращает только первый соответствующий компонент, найденный на GameObject, на котором она вызвана, и порядок проверки компонентов не определен. Поэтому, если существует более одного указанного типа, который может соответствовать, и вам нужно найти конкретный, вы должны использовать Component.GetComponents и проверить список возвращенных компонентов, чтобы определить тот, который вы хотите.

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

См. Component и GameObject справочные страницы класса, описывающие другие варианты GetComponent семейство методов.

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

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponent<HingeJoint>();

if (hinge != null) { hinge.useSpring = false; } } }

Обратите внимание: Если запрашиваемый тип является производным от MonoBehaviour и связанный с ним скрипт не может быть загружен, то эта функция возвратит `null` для этого компонента.

Declaration

public Component GetComponent(Type type);

Параметры

Параметр Описание
тип type из Компонента для получения.

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

Компонент Компонент соответствующего type, в противном случае null, если Компонент не найден.

Описание

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

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

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = gameObject.GetComponent(typeof(HingeJoint)) as HingeJoint;

if (hinge != null) { hinge.useSpring = false; } } }

Declaration

public Component GetComponent(string type);

Параметры

Параметр Описание
тип Имя type компонента, который нужно получить.

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

Компонент Компонент соответствующего type, в противном случае null, если Компонент не найден.

Описание

Струнная версия этого метода.

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

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponent("HingeJoint") as HingeJoint;

if (hinge != null) { hinge.useSpring = false; } } }