参考了银鸟工作室的视频教程,非常感谢:UI系统实践
Pivot & Anchor
Pivot和Anchor是RectTransform和Transform最大的区别。
- Pivot即“中心点”,它决定了物体旋转的中心。在场景中是一个蓝色的圈圈。
它是一个从(0,0)到(1,1)的值,分别对应左下角和右上角。比如如果pivot是(1,1)的话物体就会绕右上角旋转。
- Anchor即“锚点”,它决定了该物体左下角和右上角的位置。常用用法是,使子物体固定在Parent的某个位置上,实现ui适配。
锚点由两个值:Min(左下角)和Max(右上角)决定,它们都是从(0,0)到(1,1)的值,分别对应parent的左下角和右上角。注意这里是相对于parent的!
比如:默认值是0.5时,坐标是(0, 0, 0),这时锚点在正中间(如上图所示)。
如果把Min和Max都设为(0,0),那么该物体就会固定在parent(canvas)的左下角。
这时坐标也发生了变化:
这是因为ui是Canvas的子物体,position是相对于Parent(canvas)的,也就是localPosition,而当前的屏幕分辨率是3840×2160的,所以中点就是1920×1080,表示这个ui元素离Parent1920×1080这么远。
但是显然通过数值去改Anchors有点麻烦,Unity就提供了一些固定的方案:锚点预设(anchor presets)
按shift或者alt可以有多种效果,可以自己捣鼓一下。