//调整面板尺寸: 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-06-28 14:50:11 发布