吐槽一下:各种相对位置真的好晕,快吐了,渲染的时候unity不会晕吗。
矩形框原点
- 如图,矩形框的左下角,不知道叫啥,这里就叫矩形框原点了。轴心点和锚点的位置都要用到这个概念。手册中的标准化位置就是以其为原点的参考系。
轴心点/中心点(Pivot)
- 轴心点(图中那个小蓝圈)可以理解为把物体抽象成一个点,物体的位置(无论是相对位置还是绝对位置啥的)就是指其轴心点的位置,就是该物体坐标系的原点。所以把物体的轴心点放在一起就当他们在一起了。
- Pivot的位置相对于自身矩形框,(0,0)就是在矩形框原点,(1,1)就是在矩形框的右上角。
锚点(Anchor)
- 四个小三角,锚点的位置就是四个三角的中心点的位置。
- 锚点的位置(anchorPosition)就是四个小三角的中心的位置(红色,真心画不直)。
- 锚点有Min和Max两个值:
- Min:左下锚点相对于父项矩形框的位置。(0,0)就表示左下锚点(蓝色框起来的那个)在父节点的矩形框原点。
- Max:右上锚点相对于父项矩形框的位置。(1,1)就表示右上锚点在父节点矩形框的右上角。图中为(0.5,0.5),在父节点矩形框的中间(绿色框起来的那个)。
好了,现在可以理一理各种位置了。
RectTransform的位置
此处,把“TestVScrollView”作为父项,Viewport作为子项来分析。
为了方便分析,把父项的轴心点,也就是坐标系放在下面(红色框位置);把子项的锚点放在左边(绿色框位置)。
父项和子项的矩形、锚点、轴心点如下:
用debug模式查看子项:
查看debug模式下RectTransform的属性
靠近父节点轴心点
靠近自身锚点
- Position:轴心点所在的世界坐标,相对于世界坐标系的坐标,没什么好说的。
- Local Position:相对位置,轴心点相对于父节点轴心点 / 父节点坐标系原点的坐标。
- Anchored Position:轴心点相对于 自身锚点位置(anchorPosition) 的坐标。有“ed”,不是锚点的坐标!!