来自于:林新发

一、前言

最近发布Unity的Windows平台的exe版本,需要监听窗口关闭事件,做一些逻辑,比如第一次点关闭的时候弹出提示,禁止exe被关闭,第二次才关闭。

二、具体实现

1、Unity2017及以下版本

  1. using UnityEngine;
  2. public class Main : MonoBehaviour
  3. {
  4. void OnApplicationQuit()
  5. {
  6. ++m_quitCnt;
  7. if(m_quitCnt < 2)
  8. {
  9. Application.CancelQuit();
  10. }
  11. }
  12. private int m_quitCnt = 0;
  13. }

2、Unity2018及以上版本

  1. using UnityEngine;
  2. public class Main : MonoBehaviour
  3. {
  4. void Awake()
  5. {
  6. Application.wantsToQuit += () =>
  7. {
  8. ++m_quitCnt;
  9. return m_quitCnt >= 2;
  10. };
  11. }
  12. private int m_quitCnt = 0;
  13. }