实现全屏窗口(伪全屏),gui焦点不错位,画面不拉伸。
网上关于 Unity 实现全屏窗体的例子似乎不多,基本思路都是借助 user32.dll 来完成。然而,大多数实现都会出现焦点错位的问题,或者由于窗口拉伸导致 3D 画面变得模糊。这是因为在打包 EXE 时,焦点捕获是依据窗口大小来判定的。
目前,我正在处理一个特殊客户的特殊需求,需要将其他窗体叠加在 Unity 画面之上。为此,我编写了这个小插件。由于代码尚未整理,可能存在一些杂乱的地方,若有问题,还请各位大侠指出并纠正。
实现功能
- 可随意设置发布后窗体的大小。
- 能够选择窗体是否带有边框。
- 支持实现全屏窗口。
- 可以调整窗体在屏幕中的深度(例如置顶等操作)。
适用环境
该插件适用于 Windows 系统。
运行效果
全屏窗口效果
在全屏窗口模式下,其他窗口可以叠加显示在 Unity 画面上方,同时 Unity 的 GUI 焦点不会出现错位,画面也不会因拉伸而变得模糊。
无边框窗口效果
插件支持设置无边框窗口。
设置选项
窗体风格
包括全屏、全屏窗体、普通窗体和无边框窗体四种类型。
屏幕深度
提供正常、Top、TopMost 三种选项。
使用方法
将 windowMod 文件附加到摄像机上即可。