Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Описание

Уничтожение прикрепленного поведения приведет к тому, что игра или сцена получит OnDestroy.

OnDestroy происходит, когда сцена или игра заканчиваются. Остановка режима воспроизведения при запуске из редактора приведет к закрытию приложения. Когда это произойдет, будет выполнено OnDestroy. Кроме того, если сцена закрывается и загружается новая сцена, будет выполнен вызов OnDestroy.
При сборке в виде отдельного приложения OnDestroy выполняются, когда сцены заканчиваются. Окончание сцены обычно означает загрузку новой сцены.

Примечание.OnDestroy будет вызываться только для игровых объектов, которые ранее были активны.

В следующих скриптах показано поведение OnDestroy. При запуске внутри ExampleClass1 доступна кнопка. С помощью этой кнопки вызывается OnDestroy, а затем переключается на ExampleClass2. После активации ExampleClass2 будет использоваться OnDestroy. когда приложение закрыто. Если ExampleClass1 завершит работу, закрыв приложение, оно вызовет OnDestroy. (При сборке и запуске приложения консоль отображает вывод текста в журнал игрока.)

Предупреждение. Если пользователь приостанавливает работу вашего приложения на мобильной платформе, операционная система может закрыть приложение, чтобы освободить ресурсы. В этом случае, в зависимости от операционной системы, Unity может быть не в состоянии вызвать этот метод. На мобильных платформах лучше не полагаться на этот метод для сохранения состояния вашего приложения. Вместо этого считайте каждую потерю фокуса приложения выходом из приложения и используйте MonoBehaviour.OnApplicationFocus для сохранения любых данных.

using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class ExampleClass1 : MonoBehaviour { private float timePass = 0.0f; private int updateCount = 0; void Start() { Debug.Log("Start1"); } // код, который генерирует сообщение каждую секунду void Update() { timePass += Time.deltaTime; if (timePass > 1.0f) { timePass = 0.0f; Debug.Log("Update1: " + updateCount); updateCount = updateCount + 1; } } void OnGUI() { if (GUI.Button(new Rect(10, 10, 250, 60), "Change to scene2")) { Debug.Log("Exit1"); SceneManager.LoadScene(1); } } // генерируем сообщение перед функцией Start() void OnEnable() { Debug.Log("OnEnable1"); } // генерировать сообщение, когда игра закрывается или переключается на другую Scene // или переключился на ExampleClass2 void OnDestroy() { Debug.Log("OnDestroy1"); } }

Примеркласс2:

using UnityEngine; using UnityEngine.UI; public class ExampleClass2 : MonoBehaviour { void Start() { Debug.Log("Start2"); } void OnEnable() { Debug.Log("OnEnable2"); } // генерировать сообщение, когда игра закрывается void OnDestroy() { Debug.Log("OnDestroy2"); } }

OnDestroy не может быть сопрограммой.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3