C# 检测应用程序何时在Unity中生效?

C# 检测应用程序何时在Unity中生效?,c#,unity3d,C#,Unity3d,我们正在尝试检测应用程序在处于后台模式后何时再次变为活动状态,我们希望能够在出现这种情况时启动一个方法。这是一个非常简单的想法:在应用程序进入后台模式时,甚至有一个单一行为的应用程序暂停方法可以使用,但对于“OnApplicationResume”则没有。刚刚尝试过,效果很好 bool initialFocus; void OnApplicationFocus(bool focusStatus) { if (focusStatus) { //App becam

我们正在尝试检测应用程序在处于后台模式后何时再次变为活动状态,我们希望能够在出现这种情况时启动一个方法。这是一个非常简单的想法:在应用程序进入后台模式时,甚至有一个单一行为的应用程序暂停方法可以使用,但对于“OnApplicationResume”则没有。刚刚尝试过,效果很好

bool initialFocus;


void OnApplicationFocus(bool focusStatus)
{
    if (focusStatus)
    {
        //App became active, will fire on application first focus
    }

    if (focusStatus && initialFocus)
    {
        //App became active, after it's been inactive at least once
    }

    initialFocus = initialFocus || focusStatus;
}
此外,在您的问题中,您询问了关于应用程序暂停的

请注意,事实上,
OnApplicationPause
以相同的方式检测暂停和取消暂停-它将bool作为参数

  void OnApplicationPause(bool p)
  {
      Debug.Log("The app just " + (p ? "paused" : "unpaused"));
  }

还要注意的是,应用程序退出在移动平台上没有任何意义。

只花了5秒钟查看MonoBehavior类的帮助…它意味着变为活动或非活动,可以转换为暂停或恢复。@Gusman问题是我不希望应用程序第一次启动时启动该方法!查看我的更新答案添加一个bool,并检查第一次执行。。。