UGUI之RectTransform排版

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UGUI之RectTransform排版相关的知识,希望对你有一定的参考价值。

 

往Scroll View里面添加子元素,并整齐排列

Text last =Instantiate(text,transform.position,transform.rotation).GetComponent<Text>();//生成预制text
last.text = nowText;//设置新对象的文本
Text[] texts = this.transform.GetComponentsInChildren<Text>();//获取该Scroll View下有多少个text,用于计算新产生text的y值
last.transform.parent=context.transform;//设置text父节点为Scroll View里面的context

//设置text的锚点框为横向拉伸对其父节点
last.GetComponent<RectTransform> ().anchorMin = new Vector2 (0, 1);//左下
last.GetComponent<RectTransform> ().anchorMax = new Vector2 (1, 1);//右上

//设置text的大小
last.GetComponent<RectTransform> ().offsetMax = new Vector2 (2, 0);//左下偏移量 
last.GetComponent<RectTransform> ().offsetMin = new Vector2 (2, -20);//右上偏移量

last.GetComponent<RectTransform> ().anchoredPosition = new Vector2 (0, -10-(texts.Length)*20);//设置锚点位置(当锚点是一个点的时候就是该点,本例中该锚点框是一条线,所以该点指的这条锚点线的中间,同理如果是矩形时那么对应的也是该矩形中心)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

还可以直接在context上面加一个GridLayoutGroup组件

技术分享

只需要把对应的每个cell的大小 边距 配置好 直接往context里面添加子物体也能达到同样的效果。

代码就简化为:

Text last =Instantiate(text,transform.position,transform.rotation).GetComponent<Text>();
last.text = nowText;

last.transform.parent=context.transform;

所有的排版设置全部都交给GridLayoutGroup完成了










以上是关于UGUI之RectTransform排版的主要内容,如果未能解决你的问题,请参考以下文章

UGUI RectTransform++

unity的ugui-9.搭建一个简单的背包

Unity UGUI 修改好了RectTransform的值但是重启工程后RectTransform会自己变化,如何解决呢

Unity3D之UGUI:Rect Transform与Anchor

Unity3D-UGUI原理篇RectTransform 组件详解

Unity3d中UGUI组件精简复盘RectTransform组件