使用 Unity 检测应用程序退出?

Posted

技术标签:

【中文标题】使用 Unity 检测应用程序退出?【英文标题】:Detect Application Quit with Unity? 【发布时间】:2015-02-21 14:52:01 【问题描述】:

我正在尝试在应用程序关闭时使用System.AppDomain.CurentDomain.ApplicationExit += new System.EventHandler(SomeFunction); 调用函数SomeFunction。在本例中为 Unity 3D。但它不起作用。我不知道为什么。它是一个编辑器脚本,而不是一个实例(静态)。你觉得我做错了什么?

【问题讨论】:

您这样做的要求是什么? 【参考方案1】:

没有适用于 Windows 的 OnApplicationQuit 方法。根据官方文档:

在 Windows Store Apps 和 Windows Phone 8.1 上没有应用程序退出事件。考虑在 focusStatus 等于 false 时使用 OnApplicationFocus 事件。

因此,您需要检查应用程序是否获得或失去焦点,而不是检查应用程序是否关闭。

在 C# 中:

void OnApplicationFocus(bool focus)

    if (!focus)
    
        //Do something
    

文档没有明确提及它,但可以假定 OnApplicationQuit 仅适用于 android,因为 ios 也不支持它。

【讨论】:

【参考方案2】:

你可以使用

function OnApplicationQuit() 

//put script in here


因此,在应用程序退出之前,它会调用该函数并执行 和 中的任何操作

【讨论】:

这完全是错误的。对于 Windows 应用商店应用,不会调用回调。这保留在文档页面上!

以上是关于使用 Unity 检测应用程序退出?的主要内容,如果未能解决你的问题,请参考以下文章

unity游戏退出发http

Unity 碰撞检测与触发检测

unity 退出程序按钮实现

unity用代码实现退出程序

使用Vuforia和Unity仅使用地平面检测创建一次对象

可以使用 Java 程序的退出代码来检测磁盘空间不足的异常吗?