用户从其他帐户迁移游戏数据后,当前游戏状态无效,游戏应重新启动。但是,Unity的官方Application.Quit
API在iOS上不起作用(至少,它在我上次尝试时不起作用)。我可以阻止屏幕上的输入,这样用户在退出/重新启动之前无法进展,但这对用户来说是不友好的。有些移动用户甚至不知道如何退出应用程序!因此,最好显示礼貌消息,然后重新启动,或退出或崩溃应用程序。
我尝试过的事情:
System.Diagnostics.Process.GetCurrentProcess().Kill();
以上适用于某些手机,但在其他手机上它只会导致游戏挂起。
System.Environment.FailFast("Please restart <game>");
在我的手机上,不支持FailFast
。我不记得它是否挂了,但它肯定没有关闭。
无限递归:我希望看门狗线程会杀死应用程序,但没有这样的运气。它挂了。
我可以卸载主程序集吗?我可以分配内存,直到操作系统杀死应用程序,但这将是非常不礼貌的,考虑到其他应用程序也将从内存中清除。
我目前的计划是使用Application.Quit()
后跟GetCurrentProcess().Kill()
,并在几个不同的设备上进行测试,希望如果第一个API调用不起作用,第二个将会。对Android和iOS使用单独的单独本机调用似乎有些过分,但这肯定会有效。