在unity中实现隐藏窗口,显示系统托盘图标,右键菜单退出功能
- 手机
- 2025-08-30 16:18:01

需要导入Targets .NET 3.5的System.Windows.Forms
using UnityEngine; using System.Windows.Forms; using System.Drawing; using System.Runtime.InteropServices; public class SystemTrayIcon : MonoBehaviour { private NotifyIcon notifyIcon; private ContextMenuStrip contextMenu; // 引入 Windows API 函数 [DllImport("user32.dll")] private static extern bool ShowWindow(System.IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] private static extern System.IntPtr GetActiveWindow(); [DllImport("user32.dll")] private static extern bool SetForegroundWindow(System.IntPtr hWnd); private const int SW_HIDE = 0; void Awake() { // 隐藏窗口 System.IntPtr hWnd = GetActiveWindow(); ShowWindow(hWnd, SW_HIDE); // 创建上下文菜单 contextMenu = new ContextMenuStrip(); ToolStripMenuItem exitMenuItem = new ToolStripMenuItem("退出"); exitMenuItem.Click += ExitMenuItem_Click; contextMenu.Items.Add(exitMenuItem); // 创建系统托盘图标 notifyIcon = new NotifyIcon(); notifyIcon.Icon = new Icon(UnityEngine.Application.streamingAssetsPath + "/icon.ico"); // 替换为你的图标路径 notifyIcon.Text = "Unity 系统托盘图标"; notifyIcon.ContextMenuStrip = contextMenu; notifyIcon.Visible = true; notifyIcon.MouseDoubleClick += NotifyIcon_MouseDoubleClick; } private void NotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { // 双击图标时将 Unity 窗口置于前台 System.IntPtr hWnd = GetActiveWindow(); SetForegroundWindow(hWnd); } } private void ExitMenuItem_Click(object sender, System.EventArgs e) { // 退出应用程序 notifyIcon.Visible = false; notifyIcon.Dispose(); UnityEngine.Application.Quit(); } void OnApplicationQuit() { // 在应用程序退出时释放资源 if (notifyIcon != null) { notifyIcon.Visible = false; notifyIcon.Dispose(); } } }在unity中实现隐藏窗口,显示系统托盘图标,右键菜单退出功能由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“在unity中实现隐藏窗口,显示系统托盘图标,右键菜单退出功能”
上一篇
Linux中挂载是什么意思?
下一篇
SQL数据处理函数全解析