介绍:
最近有个小的需求,Win端需要在关闭的时候,弹出一个是否确认关闭的弹窗。效果图如下:
地址:
https://docs.unity3d.com/ScriptReference/Application-wantsToQuit.html
退出的时候回调的这个事件,只有返回true才会推出
使用:
public class PlayerWantsToQuitExample
{
public static bool mIsQuit = false;
private static Test mTest = null;
static bool WantsToQuit()
{
//测试使用
if (mTest == null)
{
mTest = Camera.main.gameObject.GetComponent<Test>();
}
//调用自己弹窗逻辑
mTest.Show(() =>
{
mIsQuit = true;
//主动调用退出
Application.Quit();
}, () =>
{
mIsQuit = false;
});
return mIsQuit;
}
[RuntimeInitializeOnLoadMethod]
static void RunOnStart()
{
Application.wantsToQuit += WantsToQuit;
}
}
注意:
需要注意的是这个无论返回true还是false, 所有MonoBehaviour 下 OnApplicationQuit()这个方法都会调用,所以有用到这个方法且有其他逻辑处理时需要注意。
可以添加一个标记来判断
protected void OnApplicationQuit()
{
if (!PlayerWantsToQuitExample.mIsQuit)
return;
Debug.Log("OnApplicationQuit");
}