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排版的主要内容,如果未能解决你的问题,请参考以下文章
Unity UGUI 修改好了RectTransform的值但是重启工程后RectTransform会自己变化,如何解决呢
Unity3D之UGUI:Rect Transform与Anchor