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

unity3d - 如何在 Unity 中以编程方式设置 RectTransform?-LMLPHP

我正在尝试这个:

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 - 如何在 Unity 中以编程方式设置 RectTransform?-LMLPHP

最佳答案

试试这个:

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 以相同的比例向左和向右拉伸(stretch) rectTransform。由于您希望左侧尺寸与右侧尺寸不同,因此您必须移动 x 位置进行调整。

关于unity3d - 如何在 Unity 中以编程方式设置 RectTransform?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51335699/

10-14 09:02