hasFocus | 如果 GameObject 具有焦点,则为 true,否则为 false。 |
当玩家获得或失去焦点时,发送给所有 GameObject。
OnApplicationFocus 在应用程序丢失或获得焦点时调用。
使用 Alt + Tab 或 Cmd + Tab 可以将焦点从 Unity 应用程序转移到
另一个桌面应用程序。这会导致该 GameObject 收到
参数设置为 false 的 OnApplicationFocus 调用。当用户切换回 Unity 应用程序时,
GameObject 会收到参数设置为 true 的 OnApplicationFocus。
OnApplicationFocus 可以作为协同程序使用 - 在函数中使用 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; } }