ue3dUnity中的脚本退出游戏播放模式

Unity中的脚本退出游戏播放模式

分类:

在之前的文章中有提到过使用事件触发Unity退出游戏,但这种方式仅适用于已构建的应用程序,而在 Unity 编辑器中,应用程序退出功能会被忽略,因此在播放模式(Play Mode)下没有任何作用。

ue3d - Unity中的脚本退出游戏播放模式

因为该功能完全被忽略了,但仍然可以通过其他方法从 Unity 中的脚本退出播放模式,只需使用不同的函数就行了。

那么这里需要通过将 Editor Application 类的 IsPlaying 属性设置为 false 来实现:

UnityEditor.EditorApplication.isPlaying = false;

这与之前文章中使用的 Application Quit 退出游戏的效果是差不多的,只是它在编辑器中有效,不过这对于在没有构建游戏的情况下测试游戏退出过程很有帮助,也可以作为快速退出游戏模式的一种便捷的有效方法。例如当按键时退出游戏:

public class QuitManager : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            QuitGame();
        }
    }
    public void QuitGame()
    {
        UnityEditor.EditorApplication.isPlaying = false;
    }
}

退出播放模式可以设置为与标准退出功能相同的工作方式,方法是将其放置在按下键或按钮时调用。

虽然将 IsPlaying 设置为 false 可以在编辑器中退出播放模式,但它似乎也在构建的游戏中不起作用。

这是由于 Unity编辑器 类不能包含在构建的应用程序中,因此使用上述代码时甚至无法构建游戏。

如果在使用,则会得到一个较为严重的报错。为此解决该问题我们需要在Unity编辑器中运行不同的代码,也就是我们常说的预处理器指令。例如下面这段代码:

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

它可以在 Unity 中使用预处理器指令根据特定条件运行不同的代码,可以根据运行游戏的平台运行不同的代码。或者已切换到 Unity 的新输入系统,那么也可以忽略与旧输入管理器相关的代码块。

在这种情况下,预处理器指令可用于检查游戏是否在编辑器中运行。如果是,那么在编辑器中工作时可以使用不同的退出方法,并且在构建游戏时会自动将其排除

相关信息

  • 类型:知识
  • 字数:548
  • 字符:1765
  • 平台:Unity
  • 说明:无
  • 编号:65673

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!