限制 Unity windows 应用程序的分辨率

Limiting Unity windows application's resolution

我希望能得到一些帮助来解决我的问题。我想限制我的 windows 应用程序 window 以使其不低于特定分辨率(例如不小于 400x200)。

我目前有检查当前 window 大小的逻辑,如果它超出某个比率,则调整大小以达到目标比率。我可以重做这个逻辑,但问题是 window 分辨率之间的闪烁,而且有点恶心。

我想模仿类似于 Unity 编辑器或 google chrome 的东西。当您尝试调整 window 大小时,它不会低于特定分辨率。

有没有人以前做过类似的事情并能给我指明正确的方向?也欢迎示例代码。

谢谢!

最好的方法是从播放器设置中禁用分辨率对话框(我想它已经是)并取消选中可调整大小 window 这样您就可以在游戏开始时使用 Screen.SetResolution 并且该分辨率保持不变(或可通过游戏内设置进行编辑)。

得到答案。 Unity 将其最小分辨率硬编码为 128x128。因此,为了更改它,您需要子类化 Unity 的 WndProc 并覆盖 WM_GETMINMAXINFO window 消息:https://docs.microsoft.com/en-us/windows/win32/winmsg/about-window-procedures?redirectedfrom=MSDN#winproc_subclassing