【发布时间】:2016-08-01 21:32:45
【问题描述】:
在 iOS 和/或 Android 部署的基于 Unity3D 的应用上,当应用在用户暂停后恢复时,哪些信息可供应用使用?它是从中断处继续,还是应用程序从头开始?
如果应用程序从头开始,我可以利用什么来恢复它的状态,还是我必须手动实现一个备忘录(模式)?我可以订阅任何 Unity3D 事件来准备暂停的应用程序吗?
【问题讨论】:
标签: android ios unity3d suspend
在 iOS 和/或 Android 部署的基于 Unity3D 的应用上,当应用在用户暂停后恢复时,哪些信息可供应用使用?它是从中断处继续,还是应用程序从头开始?
如果应用程序从头开始,我可以利用什么来恢复它的状态,还是我必须手动实现一个备忘录(模式)?我可以订阅任何 Unity3D 事件来准备暂停的应用程序吗?
【问题讨论】:
标签: android ios unity3d suspend
按下播放后,您将无法控制其构建状态。
Unity 在构建时可能会在内部使用它,但在重建时它似乎会再次经历所有状态,例如编译脚本、着色器内容、构建版本控制、证书身份验证、构建位置等。
如果您手头有 Unity 源代码和修改后的构建管道,则这些无效。您可以在那里实现 memento 以检查哪些内容发生了变化,并忽略未更改的状态。
这些与游戏代码或事件无关。
【讨论】:
只要应用程序留在内存中,它就会在暂停后恢复。
您可以使用OnApplicationPause (bool) 来捕捉应用程序何时发送到后台并在那里进行一些序列化。如果应用程序随后从内存中删除(因为用户关闭它或系统内存不足),您可以在应用程序重新启动时从该数据中重新加载之前的状态。
【讨论】: