unity开发小贴士之五 RectTransform设计下的UI布局方式

市面上的移动游戏UI布局分为两种:
1.全屏铺满
2.小屏居中
两种布局引出两种布局方式 : 相对布局和绝对布局
相对:
Image相对Panel顶部距离20 即Image尺寸跟随Panel尺寸改变 唯一固定的是距离顶部的距离20不变
此种对应全屏铺满的UI,比如返回按钮始终在右上角20像素出。
绝对:
Image位置不随Panel变化
此种布局对应小屏居中 在不同的分辨率上 屏幕变宽变高之后小屏始终居中,到四周边界会随分辨率变化。

UGUI框架下 所有的UI 都在Canvas上 我们制定设计分辨率 960 * 640 长宽比 3:2
大于这个比例的分辨率 以宽为准,低于这个比例的分辨率以高为准

 

 

 

void SetSizeWithCurrentAnchors(RectTransform.Axis axis, float size);按照的当前的pviot信息来设置尺寸。
Image height = 640
SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical,610);
运行后更改对象的高度为610
至于是从上 中 下 哪部份减少30取决于pivot
pivot.y = 0 从上减少30
pivot.y = 1 从下减少30
pivot.y = 0.5 从两端各减少15

void SetInsetAndSizeFromParentEdge(RectTransform.Edge edge, float inset, float size);这个函数可以简单的理解为设置控件相对父控件边的距离以及控件的尺寸,其强大之处在于其完全不管你当前的pviot设置的啥,你的anchor设置的又是啥。
举例:
SetInsetAndSizeFromParentEdge (RectTransform.Edge.Left, 40, 960);
距离父节点左侧40 宽度960

sizeDelta:这个属性表示的就是offsetMax-offsetMin得到的向量,即控件从左下角指向右上角得到的向量。绝对布局下很好用,相对布局时不如所愿,猜测内部重新赋值了。

 

 

 

 

posted @ 2018-05-16 14:57  Hyhom  阅读(348)  评论(0编辑  收藏  举报