http://www.cocoachina.com/game/20160602/16570.html
文章部分参考,引用于以上网址。
总结:如果你英语足够好,很多问题就不存在了,然后去官方网址学习,查找,很容易就能解决问题。
1零散知识
UGUI与以往的NGUI不同之处很多其中一大特点就是UGUI 把精灵图集的功能取消了。
想不到unity5不再兼容ngui,也算没办法,毕竟ngui的后劲都已经过了,也算是一代ui战神,就这样吧,少学点东西也好。
2基础UI
1.Text
非常简单,自信就行。
2.Toggle
多动脑子,toggle什么的依靠什么,Canvas吗?
多个toggle放在一个toggle group下面,不放也行,toggle选择同一个group既是为一个组,
Group可选择是否每个toggle都可以关闭。
C#上也很简单,value change有些东西有点趣味
3.button手动与纯代码控制
手动设置都是一样的,其中fun可以有参数,不过没有意义,设置全局变量在无参数的fun中就行,既然可以,为什么要加一个参数控制呢,可能这样比较好调试吧。
自动设置也很简单,只需要取到Button类,获得Onclick委托,调用addListener()函数设置委托函数就行。
其实是很简单的,只要到相应的类里面看下成员或者去下官方文档看下,马上就能明白。
4.RectTransform
有下面几个点。
1, 当屏幕大小改变,物体pivot相对anchor的距离不改变。更准确说是父物体改变。当anchor为矩形时,属性分别变成了Left、Top、Right、Bottom,是指4个点相对Pivot的比例(位置)不变。
2, 谁在谁上面,谁就是anchor的parent,Alt键可以直接应用子物体到该锚点选择
3, Min与max可以自定义 anchor,anchor一个矩形,指的是一个矩形相对应另一个矩形的变化。
4, pivot是物体的轴心,物体的宽高变化,移动,旋转,缩放都与之有关。
5, posXY是物体的移动
6, width宽高,既,大小
代码方面:很难理解,但是可以直接改变值到自己想要的效果就行。
1. offsetMin和offsetMax这两个属性比较好理解,其中offsetMin表示物体(左下角相对AnchorMin的偏移,offsetMax表示物体右上角相对AnchorMax的偏移
2. sizeDelta(可控制宽高)就是offsetMax - offsetMin的值,感觉像是子物体的顶点,相对于锚点的位置变化。
3. anchoredPosition(可控制物体的移动)如果在AnchorMin和AnchorMax是重合的情况下,anchoredPosition就是表示锚点到Pivot的位置,即xy表示的是Pivot相对应anchor的位置变化。
5.Slider
与button一样,可以手动或者代码处理,不同在于,手动时,选择函数时,上面明确写着,一个是动态参数,一个是静态的参数。仔细查看,别选错了。
6.Image
很简单,这里只说一个Sliced,九宫切图。让放大失真的图片重新变清晰。
说明下,九宫切图好像只适合某些有边界的图片,如果是完整的图片,那关键部分就会被切除掉了。
7.Mask
带有mask的物体,如图片,让其下的子物体的显示不超出自己大小范围。
属性show mask graphic表示是否显示自己的图片。
隐藏的前提是该材质即该shader是mask支持的,否则无法隐藏。
8.GridLayoutGroup
自动排版组件。子物体大小都是相等的,所以属性里,可以控制子物体的大小,间隔,移动(都是整体的操作),与pivot有关。
9.ScrollRect
控制某个content的滑动。属性有,content(必须有Box collider),水平垂直移动方向。
10.Canvas
1.Sorting Layer:Sorting Layer是UGUI专用的设置,用来指示画布的深度。可以点击“+”添加Layer,或者点击“-”删除Layer。画布所使用的SortingLayer越排在下面,显示的优先级也就越高。
2.Order inLayer:在相同的Sort Layer下的画布显示先后顺序。数字越高,显示的优先级也就越高。
3. PlaneDistance:画布距离摄像机的距离
模式:
1.ScreenSpace-Camera模式
这种模式可以用来实现在UI上显示3D模型的需求,比如很多MMO游戏中的查看人物装备的界面,可能屏幕的左侧有一个运动的3D人物,左侧是一些UI元素。
2. WorldSpace
它有一个单独的参数Event Camera,用来指定接受事件的摄像机,可以通过画布上的GraphicRaycaster组件发射射线产生事件。这种模式可以用来实现跟随人物移动的血条或者名称
11.Canvas Scaler
1. Constant Pixel Size:像素大小始终不变,即一个100*100的图片在任何的分辨率下都占用100*100的像素。一般PC上会使用这种方式,因为PC端分辨率差异并不大。
2. Scale With Screen Size:不关心图片的实际像素大小,而只关心Width及Height值,这个值如果是1000,那么100高度的图片在任何分辨率下都只占用屏幕1/10的尺寸。一般移动端会使用这种方式,因为移动端分辨率差异较大。
3. Constant Physical Size:根据物理单位来进行缩放。
12.Canvas Group
可以通过Canvas Group影响该组UI元素的部分性质,而不需要费力的对该组UI下的每个元素逐个调整。CanvasGroup是同时作用于该组UI下的全部元素。
Alpha:该组UI元素的透明度。需要注意,每个UI最终的透明度是由此值和自身的alpha数值相乘得到。
Interactable:是否需要交互(勾选则可交互),同时作用于该组全部UI元素
Blcok Raycasts:如果需要图形射线(GraphicRaycaster)检测。勾选后,可将此组件作为一个射线碰撞盒。注意,不适用于Physics.Raycast。
Ignore Parent Groups:是否需要忽略父级对象中的CanvasGroup的设置。(勾选则忽略)
CanvasGroup的典型应用方式:
1.通过调整CanvasGroup的Alpha可以控制改组UI的淡入淡出
2.不勾选Interactable,可设置某个UI对象的所有子对象都不参与交互
3.通过设置Blcok Raycasts为false,可以使UI不阻挡鼠标(点击)事件
13.Canvas Renderer
从菜单中可以获得的标准UI对象,所有需要的画布呈现器都在需要的地方,但是您需要为定制的UI对象手动添加这个组件。尽管在检查器中没有公开的属性,但是可以从脚本中访问一些属性和函数
该类隐藏的属性参数还是很多的。
14.Raw Image
RawImage功能上与Image组件类似,但属性并不完全相同。
RaycastTarget 决定是否可接收射线碰撞事件检测
UV Rect 可以让图片的一部分显示在RawImage组件中
15.Rect Mask 2D
RectMask2D是一种类似于掩模控制的屏蔽控制。该掩码将子元素限制为父元素的矩形。与标准的屏蔽控制不同,它有一些限制,但它也有一些性能优势。
RectMask2D的一个常见用途是显示较大区域的一小部分。使用RectMask2D来画出这个区域。