hasFocus | 如果 GameObject 具有焦点,则为 true,否则为 false。 |
当玩家获得或失去焦点时,发送给所有 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;
}
}