UG4L9-5——组
UG4L9-5——组
本章代码关键字
1 | GGroup //高级组类 |
组
组是组件内用于可以批量管理元件和控件的特殊对象
它可以统一管理多个元件和控件的移动、显影、复制粘贴等等
组的创建
在舞台上选定一个或多个元件、控件,然后Ctrl+G,就可以建立一个组了
FairyGUI的组分为两种:普通组和高级组
普通组相关
普通组仅在编辑时有效,辅助UI设计,发布后不存在
作用:
- 整体移动
- 整体调整深度
- 整体复制粘贴
- 双击组进入内部,可随意调整各元件深度
- 组大小改变时,组内内容将同时增大或缩小
强调:它主要起辅助功能,进入Unity后没有任何意义
高级组相关
高级组除了包含普通组功能外,它发布后仍然保留,可以通过代码获取设置
作用:
- 统一设置可见性
- 设置位置,大小
- 设置关联
- 设置布局
- 无:没有布局,不会自动计算包围,效率高,
这种组一般就是用来控制显隐 - 水平布局:组内元件在容器中顺序水平依次排列,缩放时按比例增大
- 垂直布局:组内元件在容器中顺序垂直依次排列,缩放时按比例增大
- 行列距表示布局时元件的间隔距离
- 排除隐藏对象:勾选后,隐藏对象不会参与排列
- 禁用自动计算包围:勾选后,如果向组内添加删除元素
将不会改变组的大小,而是调整组内元素的大小
Unity中使用高级组
-
获取高级组对象
1
GGroup gGroup = view.GetChild("group1").asGroup;
-
控制位置和显隐
1
2gGroup.y = 0;
gGroup.visible = true; -
改变布局
1
gGroup.layout = GroupLayoutType.Horizontal;
-
注意:无法通过组获取子对象
如果想要判断面板组件下哪些控件在组内,只有通过遍历组件下所有子对象 判断它是否属于组 -
设置元件属于某一组
1
2
3GImage image = UIPackage.CreateObject("teach", "ui_TY_biaotilan_01").asImage;
view.AddChild(image);
image.group = gGroup; -
判断元件是否属于某一组
1
2
3
4
5for (int i = 0; i < view.numChildren; i++)
{
if (view.GetChildAt(i).group == gGroup)
print(view.GetChildAt(i).name + "在" + gGroup.name + "组中");
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!