版本:unity 2017.1 语言:C#
总起:
NGUI和UGUI都有在用,不过我最常用的还是UGUI,相比而言UGUI的实现更加简洁一些易于上手。
而NGUI的有些方面感觉做的冗余了,不过NGUI的好处是开源,有什么功能不够的地方可以自行更改,而且NGUI提供的功能比UGUI完善的多。
个人喜欢用UGUI,功能不够的去扒NGUI的代码做实现。
UI的组件会比较多,有一些冷门的、简单的,我就介绍一下,不展开说明了。
Canvas 画布:
如果场景中不存在Canvas对象,新建任意的UI组件时就会创建Canvas,并且会新建一个EventSystem对象用于捕捉UI的各种事件。
UGUI有一点做的不是很好,他的渲染顺是按照Hierarchy窗口下的排列顺序的,不像在Sprite Renderer中有Sorting Layer和Order in Layer去排列Sprite的渲染顺序。所以需要使用Transform中的SetAsFirstSibling、SetAsLastSibling、SetSiblingIndex三个方法控制节点的排列。
在介绍Canvas组件之前,先来介绍UI中特有的Transform。
♦ RectTransform
从继承关系上来讲RectTransform是Transform的子类,所以RectTransform拥有Transform的所有特性。
3D模型上我们调整大小都是使用Scale属性,UI也可以,不过一个更好的解决方案是在Scene窗口下按下T快捷键调整其Width和Height。
Pos(X, Y, Z):组件上Pivot的点相对于锚点的位置;
Width/Height:组件矩形的宽高;
Left、Top、Right、Bottom:位置相对于各个边的位置,只有锚点选择Anchor Presets中的周围一圈时会显示;