【问题标题】:Does Unity's OnApplicationPause work on iOS/Android?Unity 的 OnApplicationPause 是否适用于 iOS/Android?
【发布时间】:2017-02-22 03:27:35
【问题描述】:

我正在开发 Unity for iOS 和 Android 应用程序,该应用程序在后台获取用户的位置。我想捕捉应用程序成为背景的时刻,但 OnApplicationPause 从未调用过。

我只在OnApplicationPause 方法中放置了Debug.Log() 调用,以确保事件是否被触发,但不是。

我的代码:

public class GPSService : MonoBehaviour {

   ...

    void OnApplicationPause(bool paused){
      Debug.Log("Paused");
      if(paused){       
       UnityEngine.SceneManagement.SceneManager.LoadScene("Background");
      }
    }
}

问题出在哪里?以及如何解决?

我在 Unity 5.4.4f1 和 5.5.1p4 上测试了这种行为。

测试设备:iPhone 4s、Doogee X5 Max (Android 6.0.1)

【问题讨论】:

  • Android 或 iOS 不支持?
  • 好的。我可以看看您是如何实现该功能的以及其中的内容吗?另外,是什么让您认为它不起作用或被调用?你用Debug.Log了吗?
  • @Programmer 抱歉,问题不完整。我只在 OnApplicationPause 方法中放置了 Debug.Log 以确保事件是否被触发。
  • @Programmer 为什么我认为它不起作用。例如对于 iOS。在 Xcode 控制台中,我看到 applicationDidEnterBackgroundapplicationDidBecomeActive 事件,它们之间没有任何日志。
  • @Programmer 感谢您的帮助!如果需要,我将在更多手机和更多版本的 Unity 上进行尝试,并在 UnityIssueTracker 中添加新问题。

标签: android ios unity3d


【解决方案1】:

尝试使用 OnApplicationFocus(bool)

在 Android 上,当启用屏幕键盘时,会引发 OnApplicationFocus( false ) 事件。此外,如果在启用键盘的同时按下 Home,则不会调用 OnApplicationFocus() 事件,而是调用 OnApplicationPause()。

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnApplicationFocus.html

【讨论】:

  • 问题是如何修复 OnApplicationPause 而不是具有不同功能的替代品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 2013-05-12
相关资源
最近更新 更多