unity3d - 如何以编程方式在 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);
但结果是这样的:
解决方案
尝试这个:
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 位置进行调整。
推荐阅读
- python - 如何通过python发送带有电子邮件的“数组”?
- amazon-web-services - 如何处理 next 和 prod 环境中的两个负载均衡器?
- postgresql - 试图强制 Liquibase 对 H2 内存数据库使用 Postgres 模式
- r - 从 R 中的多个二元变量创建新的条件因子变量
- github - 为多个 git 存储库设置团队和权限
- reactjs - 在 REACT 函数组件中实现事件
- pytest - 用nosetest和pytest一起测试python项目
- python - 如何使用 Python 从 Selenium 获取另一个选项卡的性能日志?
- c++ - c++ 中的可见变量以及如何使变量更加可见
- listview - 扩展列表视图在 Android v9.0 上自动滚动