unity3d - 在 Unity 中,如何检测窗口是否正在调整大小以及窗口是否已停止调整大小

标签 unity3d user-interface screen-resolution

我希望我的 UI 在用户仍在调整游戏大小时(在窗口边框中保持单击)不调整大小,并且只有在用户松开鼠标时才会触发调整大小事件。
我试图在 Unity 上实现它,但到目前为止我只能检测到窗口大小的变化,我的脚本每 0.5 秒检查一次,如果检测到变化,它将调整 UI 的大小。但是当然调整所有内容会导致严重滞后,因此每 0.5 秒调整大小不是一个好的选择,但每 1 秒调整大小也不是一个好主意,因为 1 秒被认为太长了。
问题可能太宽泛,但我已将问题指定为尽可能小,如何检测用户是否仍在调整窗口大小?以及如何检测用户是否已停止调整窗口大小(停止在窗口边框处单击)?

最佳答案

我有一些好消息 - 有点。
当用户在 Mac 或 PC 上调整窗口大小时,
Unity 将自动重新布局所有内容。
但实际上只有当用户“完成”调整 Mac/PC 窗口的大小时。
我相信这就是 OP 所要求的——所以好消息是,OP 所要求的是非常自动的。
然而。 Unity 中的一个大问题是,当用户拖动鼠标以展开 Mac/PC 窗口时,Unity 无法平滑地调整元素大小。
我从来没有找到解决这个问题的办法。 (经常提到的一个糟糕的解决方案是每帧检查窗口的大小;这似乎是唯一的方法。)
再次有趣的是,OP 提到的内容

" ..and if window has stopped resizing .."


在 Unity 中自动完成;实际上什么都不做。

关于unity3d - 在 Unity 中,如何检测窗口是否正在调整大小以及窗口是否已停止调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61712096/

相关文章:

c# - 单元测试未涵盖 LINQ `Any`

c# - StreamReader 中的子字符串错误

c# - 如何计算手机平放时绕 y 轴(滚动)的旋转?

java - 区分已签名的 Java 小程序

c# - 获取屏幕的原始分辨率

c# - Unity - 如何根据当前位置计算具有偏移量的目标位置?

c# - 涉及数据显示的极其奇怪的问题

java - 让你的 JFrame 成为静态变量是不是很糟糕? ( java Swing )

javascript - 用于解析的 CSS 样式表

java - 在 Android 中获取真实屏幕尺寸