Unity3d 如何以编程方式在Unity中设置RectTransform?

Unity3d 如何以编程方式在Unity中设置RectTransform?,unity3d,Unity3d,我希望我的矩形变换如下所示: 我正在尝试这个: 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

我希望我的矩形变换如下所示:

我正在尝试这个:

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);
m_Viewport=go.GetComponent();
m_Viewport.anchorMin=Vector2.0;
m_Viewport.anchorMax=矢量2.1;
m_Viewport.localPosition=Vector3.0;
m_Viewport.localScale=Vector3.one;
m_Viewport.offsetMin=新矢量2(30,0);
m_Viewport.offsetMax=新矢量2(0,0);
m_Viewport.sizeDelta=新矢量2(-20,0);
但结果是这样的:

试试这个:

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

请解释其工作原理。里面没有任何东西是有意义的,但它是正确的。假设我想要60岁,我要改变什么?TBH我刚刚将检查器置于调试模式并复制了值。但我想我找到了一个更可读的代码。我将编辑答案。没问题,很乐意帮助!:)