当您按下Android手机的后退/返回键时,我试图让应用程序自行退出。
我尝试将此代码放在附加到我所有场景中的gameObject的脚本更新中,因为DontDestroyOnLoad
:
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
}
我刚刚测试了一些东西,看看我是否进入了if,当我在手机上玩时。我到了那里。 Application.Quit()
是问题所在。我希望有人可以帮助我解释如何在Android中退出应用程序。
谢谢! :)
答案 0 :(得分:2)
我知道Application.Quit()在编辑器中不起作用,
是的,它在编辑器中不起作用,但您可以在编辑器中使用UnityEditor.EditorApplication.isPlaying
,但必须将其包裹在UNITY_EDITOR
宏周围。请参阅以下示例:
void Quit()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
我把它缩小了,似乎Application.Quit()就是问题所在。 我无法弄清楚为什么因为网络上的所有地方都应该这样做 在Android上工作
Application.Quit()
功能应该适用于Android。如果它没有,那就是一个错误。
Unity中还有另一种解决方法。
以下是其他解决方法:
<强> 1 即可。在true
函数中将Input.backButtonLeavesApp
设置为Awake
。在Android上按下后退按钮时,会自动退出应用。
void Awake()
{
Input.backButtonLeavesApp = true;
}
<强> 2 即可。如果这不起作用则终止进程:
System.Diagnostics.Process.GetCurrentProcess().Kill();
如果这也不起作用,则通过编辑器提交错误报告。
答案 1 :(得分:0)
Application.Quit()应该可以工作,至少在我的应用程序中可以。
这是另一种特定于Android的方式,它以某种可控制的方式退出您的应用程序(不仅仅是终止进程):
Ss = [0.806, 0.773, 1.1014, 0.786, 1.095, 0.803,
0.806, 0.785, 1.014, 0.586, 0.955, 1.088,
0.752, 1.010, 1.246, 0.879, 1.284]
S1 = [0.228, 0.220, 0.280, 0.231, 0.297, 0.226,
0.228, 0.231, 0.280, 0.174, 0.264, 0.295,
0.217, 0.279, 0.338, 0.247, 0.351]
Fs = [1.200, 1.200, 1.094, 1.200, 0.800, 1.200,
1.200, 1.200, 1.094, 1.266, 1.118, 1.065,
1.200, 1.096, 1.200, 0.800, 0.900]
F1 = [1.500, 1.500, 2.040, 1.500, 0.800, 1.500,
1.500, 1.500, 2.040, 1.500, 2.072, 2.010,
1.500, 2.042, 1.500, 0.800, 0.800]
SDS = [] # Short Term Design Acceleration Constant (Dimensionless)
SD1 = [] # 1 second Period Design Acceleration Constant (Dimensionless)
for i in range(len(F1)):
SDS.append(Ss[i]*Fs[i])
for i in range(len(F1)):
SD1.append(S1[i]*F1[i])
答案 2 :(得分:0)
编辑器应用运行时的一点补充说明:ExitPlaymode();
#if UNITY_EDITOR
UnityEditor.EditorApplication.ExitPlaymode();
#else
Application.Quit();
#endif
同样有效(使用 LTS 2019.4.16f)