首页 > 代码库 > UI元素的相对自适应
UI元素的相对自适应
什么是UI元素的相对自适应
UI元素的相对自适应,顾名思义,是指两个UI元素之间保持一种相对的位置不要变化,例如,UI元素A永远处于UI元素B右边的50像素处位置。再比如,一个UI背景框,不论屏幕尺寸怎么变化,框的左边缘永远距离屏幕左边100像素,框的右边缘永远距离屏幕右边100像素。
Anchors的介绍及使用
Anchor的主要作用是一个组件,它将会自动去寻找摄像机的边缘和中心点一共9个点,以此作为基准点进行定位适配。而Anchors(为了 区分,以下皆用相对Anchors来形容)是每一个UI控件都会附带的选项,它能为每一个UI控件设定绑定对象和绑定的方式。默认情况下为none,意味着控件默认情况下无相对定位。
Anchors设置:
Type为Anchors定位的类型,一共有None(默认状态,无相对定位)、Unified(统一的标准定位)、Advanced(高级定位)。统一的标准定位和高级定位之间的区别在于,高级定位能够有更加复杂的定位设置,但它们的定位原理是一样的。
Execute选项为设定相对定位执行的时机,一共有3个选项可以选择:OnUpdate、OnEnable和OnStart,Update、Start、OnEnable是Unity中脚本自动执行的函数,如果选择了OnUpdate,则这个空间的定位会随着每一帧去进行更新,如果选择了OnEnable,那么意味着这个空间只会在激活的时候更新一次定位,然后不再更新,直到下次激活再进行更新,如果选择了OnStart,那么这个控件在场景加载之后只会更新一次相对定位信息。一般来说,为了节省性能有照顾需求,会选择OnEnable。
Target选项为这个控件相对位置选取的参照物,也就是这个控件以哪一个物体作为锚点来进行相对位置的绑定。
下面的4个选项:Left、Right、Bottom、Top。它们的作用是设置这个控件的4个边的对位信息,在每个选项旁边的下拉菜单中选择Target‘s Center(以目标点的中心点作为参照)等目标体身上的参照点,最右边的数字表示的是像素偏移,加号为向X轴正向偏移一定像素,减号为向X轴负向参照目标点偏移一定像素。
Anchors适配的核心原理为:为该控件的4条边分别设定相对位置的参照点,这个参照点可以选择参照物体身上的中点、左边点灯,然后设定一定量的偏移像素。这样当相对Anchors执行时,控件的4条边会分别按照定位信息朝4个方向"拉扯控件",来达到相对位置适配的效果。所以,Anchors本质上市点对点的(自身控件的4条边的终点,分别去对应一个参照点)。
Anchors的Advance模式比Unified多了一些功能,可以给控件的4边分别设置不同的参照物。
使用Anchors的注意事项
(1)Anchors需要对每个控件都进行详细的锚点定位设置,工作量巨大,所以,在没有必要的情况下,尽量用Anchor组件,可以减少很多工作量。
(2)使用Anchors时一定要切记它在屏幕分辨率变化的情况下,很可能会导致控件形变(控件4边被拉发生变形)。
(3)如果一定要使用Anchors,又不希望它形变,就将Anchors的4边定位都以目标物体的同一个点(如Target‘s Center)作为参照点。
UI元素的相对自适应