Unity UGUI 之Rect Transform(一)

敝人最近刚刚学到Unity的UGUI,横在面前的第一座大山就是每个控件必备的Rect Transform组件。因此在此总结整理下自己对它的理解,侧重点是对它实现原理的理解。

为了统一说法,下面对三维空间中的gameObject称为“物体”;UI层面的gameObject称为“控件”;控件挂载的脚本称为“组件”;说明父子关系时,把子控件称为“元素”;

1. 为什么用Rect Transform,而不用Transform了呢?

因为Transform里只有物体的位置信息,没有大小信息。不是说Unity不想把大小信息存进去,而是没办法。因为三维物体的形状是任意的,比如立方体、球体、胶囊体等等。不方便统一表示。而对于UI来说,所有的控件都是二维矩形,只有长和宽两个参数,这使得把控件大小信息表示出来成为可能。于是干脆就采用“矩形变换”来表示,实现了对控件长宽的控制。

在我看来,UGUI里的基本控件是空控件、文本框、图片这三种矩形区域。加上特效、交互组件、布局组件即可组合成各种控件。

这里我也顺带查了下为啥图片都是矩形的,一种说法是古往今来的纸张、胶片都是矩形的(为了不产生裁切废料),数码相机感光原件、显示器也是矩形的。这些记录、显示图片的装置是矩形的,那图片也就一直是矩形了。即便是VR场景,也是生成一张矩形全景图。不过随着VR设备的应用普及,是否会产生球形摄影、存为球形图片、然后必须在VR设备中进行720°的观看和编辑的情况呢?这部分暂时没时间去了解,先不深究了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值