版本: Unity 6 (6000.0)
语言英语
  • C#

MonoBehaviour.OnApplicationPause(bool)

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们确实会阅读用户提出的每项更改建议,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

参数

pauseStatus 如果应用程序已暂停,则为 True,如果正在播放,则为 False。

描述

当正在运行的应用程序在失去或恢复焦点时暂停或恢复时,会发送到所有游戏对象。

在后台运行编辑 > 项目设置 > 播放器 > 分辨率和演示)被禁用时,在编辑器播放模式或独立播放器中运行的游戏将在编辑器或播放器应用程序失去焦点时暂停。 在这些情况下,Unity 会向所有 MonoBehaviour 发送 OnApplicationPause(true)

参数 pauseStatustrue(暂停)或 false(运行)。 所有 MonoBehaviour 在初始化期间(在 Awake 之后)都会收到此事件,因此它将在第一次进入播放模式时被调用(状态为 false)。 它们在应用程序在失去或恢复焦点时暂停或取消暂停时再次收到它。

注意: Unity 不会 在响应 编辑器工具栏 中的暂停按钮切换时调用 OnApplicationPause。 编辑器中暂停按钮的状态由 PauseState 枚举跟踪。

对于 OnApplicationPause 在独立于编辑器运行的播放器应用程序中触发,正在运行的播放器必须是窗口化的,并且小于全屏。 如果游戏被另一个应用程序隐藏(全部或部分),那么它会暂停,Unity 会调用 OnApplicationPause 并设置 true。 当游戏恢复焦点时,Unity 会调用 OnApplicationPause 并设置 false

OnApplicationPause 可以是一个协程;要做到这一点,请在函数中使用 yield 语句。 以这种方式实现,它在初始帧中被评估两次:首先作为早期通知,其次在正常的协程更新步骤中。

Android 上,启用屏幕键盘会导致 OnApplicationFocus 事件,其值为 false。 但是,如果您在启用键盘时按下“Home”键,则不会调用 OnApplicationFocus 事件,而是会调用 OnApplicationPause

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; } }