Unity UI 锚点自适应详解

Anchor:锚点

应用在父子上,子物体的位置是根据父物体的变化而变化的,而子物体和父物体联系的桥梁就是Anchor。

 Pivot :自身轴点

 Pivot中心点,就是该UI元素旋转缩放的中心点,左下角为(0,0)右上角为(1,1)

 AnchoredPosition3D:

public Vector3 anchoredPosition3D { get; set; }
作用是:改变RectTransform的PosX,Y,Z
(是以设置的 anchors 为中心的,默认如果不设置 anchors 中心点是在屏幕中间)

 绝对布局(有锚点时)

Unity UI 锚点自适应详解_第1张图片Unity UI 锚点自适应详解_第2张图片

所有锚框同在一个点时

  PosX,PosY,PosZ 分别表示UI自身的中心点所距离锚点的X、Y和Z轴的距离
  Width,Height   分别表示UI自身的宽度和高度数值
  ——>无论父物体怎么变化,子物体宽度和高度是恒定不变的。如下图所示

 Unity UI 锚点自适应详解_第3张图片


 相对布局(有锚框时)

Unity UI 锚点自适应详解_第4张图片Unity UI 锚点自适应详解_第5张图片

当四个锚框分散开 

  Left,Top,Right,Bottom分别表示UI自身相对于自身锚框的距离,Left为UI自身距离左侧锚框的距离,其他同理(Top距离上侧,right距离右侧,bottom距离下侧)
  ( 相当于设置的offsetMin和offsetMax的值 )
  ——>无论父物体怎么变化,子物体相对于父对象所占的比例不变,也就说子物体会跟随父对象变化。如下图所示

Unity UI 锚点自适应详解_第6张图片


AnchorMin、AnchorMax:

 Unity UI 锚点自适应详解_第7张图片

AnchorMin:表示锚点的X和Y的最小值      

rectTransform.anchorMin = new Vector2(0.3f, 0.3f);   范围(0-1)


AnchorMax:表示锚点的X和Y的最大值      

rectTransform.anchorMax = new Vector2(0.7f, 0.7f);   范围(0-1)
                     

表示的是该点所在位置占父物体大小的比例,无论父物体怎么变大缩小,子物体所占的比例不变。    (相当于有锚框)

 效果如下图所示

 Unity UI 锚点自适应详解_第8张图片


 offsetMin、offsetMax:

1、offsetMin:表示UI距离左边和底边的距离

可以这样记:如果向锚点范围里移动就是正值,相反向锚点范围外移动就是负值   

rectTransform.offsetMin = new Vector2(40f, 40f);

Unity UI 锚点自适应详解_第9张图片

2、offsetMax:  表示UI距离右边和上边的距离    

使用代码改变时与在Inspector手动修改相反

可以这样记:如果向锚点范围里移动就是负值,相反向锚点范围外移动就是正值(与上相反)

rectTransform.offsetMax = new Vector2(-40f, -40f);


 sizeDelta 

sizeDelta = offfsetMax - offsetMin;

你可能感兴趣的:(unity,游戏引擎)