🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉
🎄 学习专栏推荐:Unity系统学习专栏
🌲 游戏制作专栏推荐:游戏制作
🌲Unity实战100例专栏推荐:Unity 实战100例 教程
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
文章目录
- 📢前言
- 🎬Unity实战篇 |Unity 打包exe 实现隐藏窗口标题栏、隐藏最小化最大化关闭按钮
- ❤️ 第一步:新建一个Unity项目,简单搭建一个UI画面
- 🧡 第二步:创建一个脚本并挂载到场景中,编写代码
- 💛 第三步:直接运行测试 以及 打包成Exe运行测试
- 💬总结
📢前言
- 大家在平时使用一些软件APP的时候,会看到有些软件打开后最顶部是没有
窗口标题栏
的。 - 但是在Unity中打包的exe文件运行时顶部都会有一行
标题栏
,有的时候我们并不需要显示它。 - 所以本文来介绍一种方法实现怎样将
顶部标题栏
给关掉,以及标题栏中的最小化
最大化
关闭按钮
给隐藏掉
🎬Unity实战篇 |Unity 打包exe 实现隐藏窗口标题栏、隐藏最小化最大化关闭按钮
❤️ 第一步:新建一个Unity项目,简单搭建一个UI画面
新建的工程方法就不多说了,新建完项目之后添加一个Canvas,并创建几个Button组件。
分别是隐藏标题栏,显示标题栏,隐藏标题栏中的关闭按钮 和 显示标题栏的关闭按钮。
如下所示:
🧡 第二步:创建一个脚本并挂载到场景中,编写代码
本文主要是通过调用Windows的编程库来达到一个隐藏标题栏的功能,所以代码中引用到了 user32.dll
。
完整代码如下:
//公众号:呆呆敲代码的小Y
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hwd, int cmdShow);
[DllImport("user32.dll")]
public static extern long GetWindowLong(IntPtr hwd, int nIndex);
[DllImport("user32.dll")]
public static extern void SetWindowLong(IntPtr hwd, int nIndex, long dwNewLong);
// 最小化
const int SW_SHOWMINIMIZED = 2;
// 最大化
const int SW_SHOWMAXIMIZED = 3;
// 还原
const int SW_SHOWRESTORE = 1;
// 窗口风格
const int GWL_STYLE = -16;
// 标题栏
const int WS_CAPTION = 0x00c00000;
// 标题栏按钮
const int WS_SYSMENU = 0x00080000;
public Button _hideBarBtn;
public Button _showBarBtn;
public Button _hideCloseBtn;
public Button _showCloseBtn;
private IntPtr hwd;
private void Awake()
{
// 获得窗口句柄
hwd = GetForegroundWindow();
_hideBarBtn.onClick.AddListener(HideTaskBar);
_showBarBtn.onClick.AddListener(ShowTaskBar);
_hideCloseBtn.onClick.AddListener(HideClose);
_showCloseBtn.onClick.AddListener(ShowClose);
}
/// <summary>
/// 隐藏标题栏
/// </summary>
private void HideTaskBar()
{
var wl = GetWindowLong(hwd, GWL_STYLE);
wl &= ~WS_CAPTION;
SetWindowLong(hwd, GWL_STYLE, wl);
}
/// <summary>
/// 显示标题栏
/// </summary>
private void ShowTaskBar()
{
var wl = GetWindowLong(hwd, GWL_STYLE);
wl |= WS_CAPTION;
SetWindowLong(hwd, GWL_STYLE, wl);
}
/// <summary>
/// 隐藏关闭按钮
/// </summary>
private void HideClose()
{
var wl = GetWindowLong(hwd, GWL_STYLE);
wl &= ~WS_SYSMENU;
SetWindowLong(hwd, GWL_STYLE, wl);
}
/// <summary>
/// 显示关闭按钮
/// </summary>
private void ShowClose()
{
var wl = GetWindowLong(hwd, GWL_STYLE);
wl |= WS_SYSMENU;
SetWindowLong(hwd, GWL_STYLE, wl);
}
💛 第三步:直接运行测试 以及 打包成Exe运行测试
直接运行测试,就可以查看具体的效果。
也可以Build打包成exe测试查看效果,打开 File -> Build Settings -> Build
打包后的效果如下:
可以看到标题栏是可以正常隐藏和关闭的,包括只隐藏右边三个按钮也是可以的!
💬总结
- 本文简单介绍了在Unity中打包Exe文件后实现隐藏窗口标题栏、隐藏最小化最大化关闭按钮的方法。
- 主要是引用了Windows的编程库来完成的功能,如果你有更好的方法也欢迎指出学习哦!