【问题标题】:QuitApplication Button on unity统一上的退出应用程序按钮
【发布时间】:2015-05-14 10:40:28
【问题描述】:

我正在尝试在 Unity 中创建一个退出按钮,但是当我将脚本添加到该按钮并单击它时,它并没有退出。

这是我的 C# 脚本:

    using UnityEngine;
using System.Collections;

public class Quit_App : MonoBehaviour {
    void OnClick() {
        Application.Quit();
    }
}

我已经创建它并使用 UI 分配给画布,我使用 Button(Script) 框以便使用 OnClick() 框执行此代码。 在那里,我将其选为 object MyButton 和使用字符串名称的 Quit_App() 函数。

【问题讨论】:

  • 在顶部添加using UnityEngine.UI;,这可能会有所帮助

标签: c# unity3d


【解决方案1】:

您的脚本假定调用方法 OnClick 会神奇地检测到点击,但事实并非如此。

您需要将菜单管理器脚本添加到场景中,以公开要绑定到 Button 组件的公共方法。

这里是您需要的设置:

脚本 MenuManager 附加到 MenuManager 游戏对象:

MenuManager 脚本中的代码非常简单:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MenuManager : MonoBehaviour {

    public void ExitNow()
    {
        Application.Quit();
    }

}

我用fully functional implementation here 上传了这个包。

【讨论】:

    【解决方案2】:

    首先,此答案假定您的代码有效,唯一的问题是 Application.Quit () 命令未执行。

    Application.Quit () 命令在 Unity 编辑器 中测试应用程序时不起作用(例如,通过按下“播放”按钮)。它会关闭 Unity 编辑器

    要进行测试,请转到“文件/构建并运行”菜单。

    这将构建并执行项目,Application.Quit() 将正确执行。

    【讨论】:

      【解决方案3】:

      经过搜索我发现onclick不是MonoBehaviour的成员在以下链接上查看OnMouseDownhttp://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html

      【讨论】:

      • 第二次尝试你发布的这个脚本时没有用
      • 这个方法OnClick会调用哪一行?
      【解决方案4】:

      我找到了这个问题的半解决方案。我使用了这个脚本,当我按下退出按钮时允许我退出。

          using UnityEngine;
      using System.Collections;
      
      public class NewBehaviourScript : MonoBehaviour {
      
          // Use this for initialization
          void Start () {
              if (Input.GetKey("escape"))
                  Application.Quit();
          }
      
          // Update is called once per frame
          void Update () {
              if (Input.GetKey("escape"))
                  Application.Quit();
          }
      }
      

      【讨论】:

        【解决方案5】:

        如果您的意思是退出播放模式,那完全是另一回事。因为只有当它内置到应用程序中时才会退出。

        退出应用:

        Application.Quit();
        

        退出播放模式:

        UnityEditor.EditorApplication.isPlaying = false;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多