Unity Desktop应用程序C#-查找任务栏的位置(以对齐资产)



我正在制作一个具有透明背景的桌面应用程序(想想桌面玩具(,我正在努力找出是否有办法获得Windows任务栏的以下值;位置、方向、隐藏、锁定等

我想调整一些游戏资产,这样任务栏就像";地板;

有人能给我指正确的方向吗?

谨致问候,Ian

无论您找到什么解决方案,它都很可能会破坏与其他操作系统的所有兼容性。

如果这不是问题,那么最简单的解决方案可能是使用System.Windows.Forms.ScreenWorkingArea属性。这将返回屏幕的宽度+高度,减去任务栏(以及其他一些东西,如停靠窗口(。

这通常不包括在您的项目中(因为它是特定于操作系统的(,所以我们必须手动安装包含以下代码的DLL:

  1. 创建一个名为"的新文件夹;插件";在您的资产文件夹中,如果它还不存在
  2. C:WindowsMicrosoft.NETFrameworkv(highest version number)System.Windows.Forms.dll复制到新的Plugins文件夹中
  3. 点击进入Unity以允许其导入新文件
  4. 重新启动Unity和您的IDE

完成所有这些之后,您应该能够像正常情况一样导入System.Windows.Forms,并调用Screen.WorkingArea以在安全区域内移动。请注意,Unity有自己的";屏幕";类,因此您可能需要通过System.Windows.Forms.Screen.WorkingArea显式调用我们的新Screen。

请注意,这也返回了一个System.Drawing.Rectangle,而不是Unity的UnityEngine.Rect,所以只需要获取宽度和高度,而不是存储结果rect。

最新更新