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

Object.Destroy

Declaration

public static void Destroy(Object obj, float t = 0.0F);

Параметры

Параметр Описание
Объект Объект для уничтожения.
t Необязательное время, которое должно пройти до уничтожения объекта.

Описание

Удаляет GameObject, компонент или ресурс.

Уничтожает указанный объект.t) указывается, уничтожение происходит по истечении t секунд. Таймер начинается с момента Destroy Фактическое уничтожение объекта всегда откладывается до окончания текущего цикла Update, но всегда происходит до рендеринга.

Если объект является компонентом, то только этот компонент удаляется и уничтожается. Если объект является GameObject, то GameObject, все его компоненты и все его дочерние преобразования уничтожаются вместе.

Однажды Destroy(obj, t) вызван, объект запланирован для уничтожения после t секунд, независимо от того, отключен или уничтожен ли позднее компонент скрипта, вызвавший его.

Destroy безопасно вызывать для объектов, которые, возможно, уже уничтожены или равны null. Если объект уничтожен до назначенного времени, по истечении таймера ошибки не будет: внутренняя система Unity отслеживает состояние объекта и не пытается уничтожить его повторно.

Параметр задержки t затрагивается Time.timeScale. Если Time.timeScale установлен на 0 (например, если игра приостановлена), уничтожение откладывается до возобновления времени.

Дополнительные ресурсы: Object.DestroyImmediate

using UnityEngine;

public class ScriptExample : MonoBehaviour { void DestroyGameObject() { Destroy(gameObject); }

void DestroyScriptInstance() { // Removes this script instance from the game object Destroy(this); }

void DestroyComponent() { // Removes the rigidbody from the game object Destroy(GetComponent<Rigidbody>()); }

void DestroyObjectDelayed() { // Kills the game object in 5 seconds after loading the object Destroy(gameObject, 5); }

// When the user presses Ctrl, it will remove the // BoxCollider component from the game object void Update() { if (Input.GetButton("Fire1") && GetComponent<BoxCollider>()) { Destroy(GetComponent<BoxCollider>()); } } }

Destroy унаследован от базового класса UnityEngine.Object.