【问题标题】:Unity general close button C#Unity通用关闭按钮C#
【发布时间】:2016-08-05 01:46:14
【问题描述】:

我正在 Unity 5.3.4 中编写 C# 代码。我一直在尝试开发一个按钮,当我在我的计算机上测试它时,或者当我在 Android 或 iOS 中时,它会关闭应用程序。

对于 android,我找到了这段代码并且它正在工作:

if (Application.platform == RuntimePlatform.Android) {
        if (Input.GetKeyUp(KeyCode.Escape)) {
            //quit application on return button
            Application.Quit(); 
            return;
        }
}

如果您按下返回按钮,这将退出代码。我开发了一个函数,当您按下退出按钮并调用 Application.Quit() 时会调用该函数。问题是,当我在我的计算机上测试代码时,这没有任何作用。

是否有更通用的方式来统一关闭 APP,独立于运行 APP 的平台?

【问题讨论】:

  • 你的意思是在编辑器中?或者你的 exe 版本没有关闭。
  • @SP。我在编辑器中,处于播放模式。

标签: c# android ios unity3d


【解决方案1】:

使用UnityEditor.EditorApplication.isPlaying = false; 在编辑器中停止游戏。

如果您甚至想退出 Unity 以及所有设备中的应用程序,请使用 System.Diagnostics.Process.GetCurrentProcess().Kill();

但是Application.Quit () 在大多数设备上都可以正常工作。这不是要调用的编辑器方法。

【讨论】:

    【解决方案2】:

    您的移动应用(Anroid 或 iOS)中不应有退出按钮。这就是home键的作用。

    现在您明白了,Application.Quit();编辑器 中会被忽略。您将UnityEditor.EditorApplication.isPlaying 设置为false 以退出编辑器 中的游戏。在预处理器指令的帮助下,您可以创建一个适用于编辑器和独立构建的退出函数。

    void Quit()
    {
        #if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
        #else
        Application.Quit();
        #endif
    }
    

    编辑

    必须UnityEditor.EditorApplication.isPlaying = false; 放入#if UNITY_EDITOR,就像我在上面的Quit() 函数中所做的那样,否则您的应用以后将无法构建。

    Unity 将抛出名称“UnityEditor”在当前上下文中不存在错误消息。

    【讨论】:

    • 在安卓上你应该使用后退按钮来关闭应用程序。 (android back button)
    • @ColmanJ 是的,你应该这样做。您甚至可以设置Input.backButtonLeavesApp = true;,这将在按下后退按钮时自动退出应用程序。这适用于 Android 和 Windows 手机。在 iOS 上,主页按钮应该可以在没有任何代码的情况下正常工作。 TBH,我以为 OP 有一个 UI 按钮,他用来退出应用程序,这是我说他不应该做的事情。
    • @Programmer 如果在IOS中,我正在使用另一个应用程序打开unity应用程序查看AR,使用后我需要关闭unity应用程序并返回主应用程序。有什么建议吗?跨度>
    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多