我正在使用GearVR和三星手机构建VR体验。
我已经尝试弄清楚应用程序已经存在了多长时间"在后台"当OnApplicationPause
被触发时,以及随后OnApplicationFocus
。
我知道应用程序在后台处理时没有处理任何内容,所以做一个简单的计时器'不会工作,因此如下:
private float pausedAt;
void OnApplicationPause(bool pauseStatus)
{
pausedAt = Time.realtimeSinceStartup;
}
void OnApplicationFocus(bool hasFocus)
{
if (Time.realtimeSinceStartup > pausedAt + 60) { // 60 for 1 minute AFK
ResetExperience();
}
}
这似乎没有用,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
您当前代码的问题在于,您还没有在let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "popUpVC") as! PopUpViewController
self.addChildViewController(popOverVC)
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParentViewController: self)
中获得pausedAt
值。您必须这样做,因为OnApplicationFocus(false)
仅在特定时间被调用。另外,使用Time.time
代替OnApplicationPause
执行此操作。
当游戏在Time.realtimeSinceStartup
和OnApplicationPause
暂停时,Time.time
获得时间,然后在OnApplicationFocus(false)
恢复时再次获得时间。减去它们以获得应用在后台等待的实际时间。
OnApplicationFocus(true)