首页 > 解决方案 > 如何以编程方式在 Unity 中设置 RectTransform?

问题描述

我希望我的 RectTransform 看起来像这样:

在此处输入图像描述

我正在尝试这个:

m_Viewport = go.GetComponent<RectTransform>();
m_Viewport.anchorMin = Vector2.zero;
m_Viewport.anchorMax = Vector2.one;
m_Viewport.localPosition = Vector3.zero;
m_Viewport.localScale = Vector3.one;
m_Viewport.offsetMin = new Vector2(30, 0);
m_Viewport.offsetMax = new Vector2(0, 0);
m_Viewport.sizeDelta = new Vector2(-20, 0);

但结果是这样的:

在此处输入图像描述

标签: unity3d

解决方案


尝试这个:

float left = 30;
float right = 20;

m_Viewport.anchorMin = Vector3.zero;
m_Viewport.anchorMax = Vector3.one;
m_Viewport.anchoredPosition = new Vector2((left - right)/2, 0f);
m_Viewport.sizeDelta = new Vector2(-(left + right), 0);

sizeDelta将 rectTransform 以相同的比例向左和向右拉伸。由于您希望左侧尺寸与右侧尺寸不同,您必须移动 x 位置进行调整。


推荐阅读