导读:UIWidget是NGUI的基础组件。简单来说,就是一个你可以放在屏幕任意位置的矩形框。
UIWidget是NGUI的基础组件,简单的来说,就是一个你可以放在屏幕任意位置的矩形框。Widget会有一定的面积(如下图的白色矩形框),但是在运行的时候(GameView),,是完全不可见的,所以非常适合当做其他组件的容器(让所有的Sprite或者label以他进行对齐)。
UIWidget也被用来当做所有NGUI元素的基类,所有你创建的Sprites、Labels。UILabel,UISprite,UITexture和UI2DSprite(Unity3D 4.3版本)都继承自UIWidget。
- 把鼠标放到矩形框里面来移动它的位置。
- 拖动蓝色圆点进行缩放。
- 鼠标放在蓝色原点外面一些,就可以旋转widget。按住shift可以微调(windows上是ctrl)。
- 加入collider就可以让这个区域接受事件。可以在这个widget上定位其他widgets,具体查看UIAnchor。
- 在给widget加了box collider之后,widget的inspector上会有一个新的选项:Box Collider。默认是勾选的,它会自动调整使得collider的size和widget的尺寸一样(dimensions)。
- 增加UIWidget的快捷键是alt+shift+w。
widget的position在代码里面通过Transform组件获取——和其他的场景中物体一样。widget的位置与它的Pivot有关。pivot可以理解为这个widget的旋转中心。
Widgets也有Depth属性,控制他们被点击时的响应顺序(在Sprite和Label中也用来控制渲染顺序,值越大,显示的时候越靠前)。在Scene View中右键widget可以看到depth的排序。右键后会看见一个列表(如下图),所有在鼠标位置的widget都会列出来。最上面的就是显示在最前面的,也会最先接收事件。
这个菜单也提供增加兄弟或者子节点的widget(包括sprite、label等)。