unity UI学习记录

来源:互联网 发布:武汉js防水材料市场 编辑:程序博客网 时间:2024/06/16 19:43

最近学习了一下UI,趁没忘记记一下要点。

要点一

canvas三种模式

1.screen space-overlay   2  screen space-camera  3 world space  

overlay优先级最高,内部以在hierarchy中的上下顺序排序,越靠后优先级越高,可以理解为越后面刷油漆,覆盖前面。

camera模式,不同摄像机的depth优先级不同,depth越大,越后刷油漆,优先级越高。相同depth的camera调节sorting layer与order in layer不管用。另外不同的camera不会同时显示各自的画布到game窗口中,因为运行时只能同时显示一双眼睛,不可能同时显示多双眼睛,否则画面会重叠紊乱。调节camera的clear flags 选择depth only,调节culling mask选择ui,就可以将不同摄像机的ui同时显示到game窗口中。

同一camera,以sorting layer 然后order in layer 然后plane distance优先级顺序,前两者都是值越大越后刷,plane distance越近越优先。

screen space-camera与world space比较,想象为拿着自拍神器在3D场景中行走,谁离camera近先显示谁,同样的world space中,sorting layer 与order inlayer优先,然后是距离camera的远近,与3d物体如cube也是通过距离比较。


要点二

UI位置确定方式 

UI位置通过Rect Transform组件确定,Anchors显示的值是锚点在画布中的相对位置,0~1。当Anchors分为4瓣时,显示的值为4条边相对于画布的位置。Pivot相当于UI自身的位置代表点,显示的值为相对于自身的位置信息,0~1。Anchors与Pivot都是以左下方为基准。UI的位置是通过Pivot与Anchors的距离确定的,当Anchors为点时,以PIvot点与Anchors的pos x(距离x),pos y(距离y),width,height决定。当Anchors为4瓣时,通过物体的上向左右四边与Anchors的上下左右四边的距离确定。简单来说,先确定Anchors相对于画布的位置,再确定Pivot相对于自身的位置,最后通过Pivot与Anchors的距离确定。另外同样控制大小的width,height与scale的区别,前两者小于0时UI不显示,而scale小于0时UI翻转。


要点三

image组件

图片在Assets文件夹中,可以以多种方式存在。选中图片,texture type选择sprite精灵模式,sprite mode可选single或者multiple,区别为一张图是作为整体用还是切成多张用,点击sprite editor可切出多张精灵,并且设置整张或多张的九宫格比例。九宫格在放缩中,四个角不变,上下边可左右拉伸,左右边可上下拉伸,中间可随意拉伸。image组件中,image type有simple,sliced,tiled,filled四种选项。simple简单放缩,sliced九宫格式放缩,tiled平铺填充,filled就像进度条与技能冷却一样,水平,垂直,180,360。preserve aspect 选中之后按原始比例放缩,set native size,还原原始大小。

其中的Material(材质球)选项,涉及到UI自带的三种特效之一position as UV1,后面讲。

Raw image组件

基本与image一致


要点四

Text组件

Rich Text选中时,text中<b>与</b>之间的内容加粗,<I>与</i>之间的内容为斜体,<color=blue>与</color>为蓝色。<size=30>与</size>之间字号为30。注意line spacing(行距)不能为0,为零换行重叠。


要点五

UI自带特效

component到UI到 effects到shadow 与outline 与position as uv1,shadow与outline差不多,没什么可说的,position as uv1,选中显示Material的效果,不选中不显示。在创建Material时,sharder选择UI/Lit/Detail,将特效图片拉进去,制作好Material后,拉入image或text等组件中,如果UI突然消失,选择canvas的其他模式,另外要调节光照,这样特效才能显示出来。

要点六

selectable组件

interactable选中交互,不选中不交互,为disable状态,transition三种模式,color、sprite、animation、分别有正常、高亮,按下,失能状态。color multiply,RGB颜色数值乘以其值。fade duration,四种状态发生变化的过度时间。Navigation /visualize使得路径可见。刚开始的选中UI可以通过程序控制。public Selectable myselect;   myselect = gameObject.GetComponent<Selectable>();   myselect.Select();


要点七

button组件

On Click()添加事件