Unity的UI基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq826364410/article/details/86521592

锚点Anchor

Anchor就是一个RectTransform相对于其父节点,在父节点的Rect的范围内,固定的几个参考点。

1.父节点

锚点在从属结构上,是属于子RectTransform对象,是其中的一种属性,但是其取值范围是位于父节点的,也就是说,整个父节点的Rect的范围,都是anchor的取值范围(在编辑器中拖动锚点可以直观的看到)

2.固定参考点

锚点是一种定位的参考点,子对象以锚点为参考点,并相对于锚点进行定位。而锚点一旦设定,其位置相对与父节点是固定的,因此,子对象也就能相对于父节点进行定位了

3.值范围

Anchor锚点取值在[0,1]之间,是一个比例值,这个比例值,是以父节点的width,和height来进行比例计算的。

Anchor的X值为0的话,是指父节点Rect的width的左边初始点

Anchor的X值为1的话,是指父节点Rect的width的右边最远点

Anchor的Y值为0的话,是指父节点Rect的height的最低点

Anchor的Y值为1的话,是指父节点Rect的height的最高点

Anchor的min值,表示左下角在父RectTransform中的归一化位置。

Anchor的max值,表示右上角在父RectTransform中的归一化位置。

我们可以这样理解,假设我们将Rect中心点作为一个参考点,锚点代表了Rect自身相对于父节点的位置

轴点Pivot

轴点是Rect的实际中心点,和Rect尺寸中心点不同。尺寸中心点是以宽,高取1/2得到。而轴点是可以任意指定的,如果将Rect旋转,可以看到Rect是围绕轴点旋转,而不是中心点。轴点是范围也是[0,1]的比例值。轴点是属于Rect自身的。

我们这样理解,假设我们将Rect中心点来作为一个参考点的话,轴点代表了Rect相对于自身的偏移

anchoredPosition

可以理解为Pivot点相对于Anchor reference点的位置。Anchor reference点,我是这样理解的:当四个anchors点在一起的时候(没有拉伸),这个点就是anchor reference点;否则(在拉伸的情况下)这四个点的中心点就是anchor reference点。

RectTransform变换:

定位矩形变换时,首先确定它是否具有任何伸展行为,这很有用。当anchorMin和anchorMax属性不相同时会出现拉伸行为。

对于非拉伸Rect变换,通过设置anchoredPosition和sizeDelta属性可以非常容易地设置位置。anchoredPosition指定枢轴相对于锚点的位置。sizeDelta与没有拉伸时的大小相同。

对于拉伸Rect变换,使用offsetMin和offsetMax属性可以更简单地设置位置。offsetMin属性矩形左下角相对于左下锚点的偏移量。offsetMax属性矩形右上角相对于右上角锚点的偏移量。

anchorMax

右上角在父RectTransform中的归一化位置。

anchorMin

左下角在父RectTransform中的归一化位置。

offsetMin

矩形左下角相对于左下锚点的偏移量。

offsetMax

矩形右上角相对于右上角锚点的偏移量。

sizeDelta

此RectTransform的大小相对于锚点之间的距离。

Anchors的Min和Max分别是归一化的值(从0到1),表示占父RectTransform的百分比,下图中AnchorMin=(0.1,0.1) AnchorMax=(0.9,0.9)

打图集策略:

1.DefaultPackerPolicy:是默认的打包方式,也是矩形打包方式。他会把所有的小图按照矩形的方式来排列,如果宽高不一样的图片,它们会自动补齐,使用方式就是tag设置时加上”[RECT]图集名”来设置。

2.TightPackerPolicy:是紧密打包方式,也就是尽可能的把图片都打包在图集上,这种方式要比DefaultPackerPolicy打包的图片更多一些,也就是更省空间,使用方式就是tag设置时加上”[TIGHT]图集名”来设置。

3.TightRotateEnabledPackerPolicy:是紧密可旋转打包方式,也就是使用紧密打包,并且允许精灵进行旋转。

4.CustomPackerPolicy:是自定义打包方式,需要在一个编辑器脚本类中实现UnityEditor.Sprites.IPackerPolicy接口,并重写GetVersion和OnGroupAtlase两个接口。

sprite packer会把相同tagname以及相同压缩格式的资源打到相同的图集里面。相同tagname的资源压缩格式不同,这样会生成多个图集,从而增加渲染批次。

注意事项:

1.放置到Resources目录下的资源是不会被sprite pack打到图集里面去的。

2.sprite pack生成的图集默认放在Libary/AtlasCache里面。

3.重新打包(Repack)按钮只有当我们选择了非默认打包策略(DefaultPackerPolicy)时才会可用。

猜你喜欢

转载自blog.csdn.net/qq826364410/article/details/86521592
今日推荐