//调整面板尺寸: panel=面板, baseplate=缩放基板(以此基板缩放比例缩放其他控件), isAvoidIterative=避免迭代修改子物体
public static void AdjustPanel(Component panel, UIWidget baseplate, bool isAvoidIterative = true)
{
var ratioX = GetScale(Screen.width) / (float)baseplate.width;
var ratioY = GetScale(Screen.height) / (float)baseplate.height;
var ratio = Mathf.Min(ratioX, ratioY);
var scale = new Vector3(ratio, ratio, 0);
for (var i = 0; i < panel.GetComponentsInChildren<UIWidget>().Length; i++)
{
var target = panel.GetComponentsInChildren<UIWidget>()[i];
if (target.transform.localScale.Equals(scale)) continue;//防止重复修改
if (isAvoidIterative && target.parent.GetInstanceID() != panel.GetInstanceID()) continue;//防止迭代修改
target.transform.localScale = scale;
var x = target.transform.localPosition.x;
var y = target.transform.localPosition.y;
target.transform.localPosition = new Vector3(x * ratio, y * ratio, 0);
}
}
调整面板尺寸,包括子物体等比例缩放
最新推荐文章于 2024-01-12 13:46:05 发布
本文介绍了一种用于调整用户界面(UI)中面板尺寸的方法,确保其在不同屏幕分辨率下仍保持良好的显示效果。该方法通过计算缩放比例,并应用到所有子控件上,同时提供了避免迭代修改的功能。

1063

被折叠的 条评论
为什么被折叠?



