在 Unity 中调用 Windows 弹出确认框,其核心原理是借助 Unity 与 Windows 系统的交互能力,利用 Windows API 或者.NET 框架提供的功能来实现。以下分别介绍两种常见的实现方式及其原理:
方式一:使用 Windows API
原理概述
Windows 操作系统提供了一系列的 API 函数,这些函数可以让开发者直接调用系统的各种功能。其中,MessageBox 函数可以用于创建并显示一个模态对话框,也就是我们常见的确认框。在 Unity 中,通过使用 P/Invoke(平台调用服务)技术,可以从托管代码(如 C#)中调用非托管的 Windows API 函数。
代码如下:
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System;
using UnityEngine;
public class Message_
{
[DllImport("User32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
public static extern int MessageBox(IntPtr handle, string message, string title, int type);
}
public class Message: MonoBehaviour
{
void OnApplicationQuit()
{
Application.CancelQuit();
int returnNum = Message_.MessageBox(IntPtr.Zero, "确定退出游戏吗?", "Demo", 1);
if (returnNum == 1)
{
//点击确定按钮
Application.Quit();
}
}
}
ALT+F4也是可以弹出来的,自行测试即可