unity3D学习笔记之七 RectTransform与屏幕适配

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

Unity3D-UGUI框架是开源的,但是布局组件RectTransform的实现却是不可见的。。只有官方寥寥数言的文档可参考,又到了考验灵感和耐心的时候了。
void SetSizeWithCurrentAnchors(RectTransform.Axis axis, float size);按照的当前的anchor信息来设置尺寸。实际测试发现他根据的是pviot,设置的结果与anchors反而无关。
举例:
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得到的向量,即图元从左下角指向右上角得到的向量。绝对布局下很好用,相对布局时不如所愿,猜测内部重新赋值了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值