Параметры
pauseStatus | True, если приложение приостановлено, иначе False. |
Описание
Отправляется всем GameObjects, когда приложение приостанавливается.
Для параметра
OnApplicationPause установлено значение true или false. Обычно значение false возвращается сообщением OnApplicationPause. Это означает, что игра нормально работает в редакторе. Если выбрано окно редактора, такое как Inspector, игра приостанавливается и OnApplicationPause возвращает значение true. Когда окно игры выбрано и активно, OnApplicationPause снова возвращает false. True означает, что игра неактивна.
См. раздел Resolution and Presentation
в Player Settings...
, чтобы отключить Run in Background
и Visible in Background
.
OnApplicationPause можно использовать в независимой игре, работающей отдельно от редактора. Запуск игры должен быть в окне и меньше, чем полный экран. Если игра скрыта (полностью или частично) другим приложением, OnApplicationPause возвращает значение true. Когда игра вернется к текущей, она больше не будет приостанавливаться, и OnApplicationPause вернется к значению false.
OnApplicationPause может быть сопрограммой; для этого используйте оператор yield в функции. Реализованный таким образом, он оценивается дважды во время начального кадра: сначала как раннее уведомление, а затем во время обычного шага обновления сопрограммы.
В Android при включении экранной клавиатуры возникает событие OnApplicationFocus(false). Кроме того, если вы нажмете «Домой» в момент включения клавиатуры, функция OnApplicationFocus() событие не вызывается, а вместо этого вызывается OnApplicationPause().
Примечание.MonoBehaviour.OnApplicationPause получает значение true или false. Нет никакого способа вызвать это сообщение. Кроме того, клавиатура/мышь/и т. д. не могут управлять MonoBehaviour.OnApplicationPause. Пауза означает, что игра работает нормально или была приостановлена.
Примечание.MonoBehaviour.OnApplicationPause вызывается при запуске GameObject. Вызов выполняется после Awake
. Каждый GameObject вызовет этот вызов.
using UnityEngine;
public class AppPaused : MonoBehaviour
{
bool isPaused = false;
void OnGUI()
{
if (isPaused)
GUI.Label(new Rect(100, 100, 50, 30), "Game paused");
}
void OnApplicationFocus(bool hasFocus)
{
isPaused = !hasFocus;
}
void OnApplicationPause(bool pauseStatus)
{
isPaused = pauseStatus;
}
}