MonoBehaviour.OnApplicationFocus(bool)

Switch to Manual

Parameters

hasFocus 如果 GameObject 具有焦点,则为 true,否则为 false。

Description

当玩家获得或失去焦点时,发送给所有 GameObject。

OnApplicationFocus 在应用程序丢失或获得焦点时调用。 使用 Alt + Tab 或 Cmd + Tab 可以将焦点从 Unity 应用程序转移到 另一个桌面应用程序。这会导致该 GameObject 收到 参数设置为 false 的 OnApplicationFocus 调用。当用户切换回 Unity 应用程序时, GameObject 会收到参数设置为 true 的 OnApplicationFocus

OnApplicationFocus 可以作为协同程序使用 - 在函数中使用 yield 语句即可。 以这种方式实现时,将在初始帧期间对其计算两次: 第一次是早期通知,第二次在正常的协同程序更新步骤期间进行。

On Android, when the on-screen keyboard is enabled, it causes a OnApplicationFocus( false ) event. Additionally, if you press Home at the moment the keyboard is enabled, the OnApplicationFocus() event is not called, but OnApplicationPause() is called instead.


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