在舞台上选定一个或多个元件,然后按Ctrl+G,就可以建立一个组。 FairyGUI的组有两种类型,普通组高级组

普通组

普通组仅在编辑时有效,是辅助你进行UI设计的。普通组发布后不存在,也就是在运行时无法访问到普通组。

普通组的作用有:

  1. 可以整体一起移动;
  2. 可以整体一起调整深度;
  3. 可以整体复制和粘贴。
  4. 双击组,进入组内部后,可以随意调整各个元件的深度,不影响组外的东西。
  5. 当组大小改变时,组内的内容将同时增大或者缩小。

普通组的属性面板:

高级组

高级组除了具有普通组所有的功能外,它在发布后仍然保留,也就是在运行时可以通过代码访问高级组对象。所以它可以像一个普通元件那样设置关联和属性控制。

高级组的作用有:

  1. 可以设置可见性。如果组不可见,则组内的所有元件均不可见。
  2. 设置属性控制。高级组支持的属性控制有:显示控制,位置控制,大小控制。
  3. 设置关联。
  4. 设置布局。

高级组的属性面板:

演示一

这是一个无布局的组,可以看到,组大小改变时,里面的方块大小同时改变,但位置不变。

这是一个水平布局的组,可以与上图比较一下差别。

演示二

如果组内有设置了大小限制的元件,那么组大小改变时,这些元件的大小限制依然生效,在以下的例子中,由于左右两个色块被限制了大小,所以组变大时,只有中间的色块改变大小。

GGroup

高级组可以在运行时通过代码访问。但要注意的是,组不是容器,它并没有维护一个组内元件的列表。如果你需要遍历组内的所有元件,你需要遍历容器组件的所有孩子,测试他们group属性。代码如下:

GGroup aGroup = gcom.GetChild("groupName").asGroup;
int cnt = gcom.numChildren;
for(int i=0;i<cnt;i++)
{
if(gcom.GetChildAt(i).group==aGroup)
Debug.Log("get result");
}

必须注意,对于没有布局的高级组,运行时是不会自动改变大小的,也就是无论组内的元素怎么变动,这种高级组的大小是不会自动改变的! 如果确实需要改变,那么只能自行调用GGroup.EnsureBoundsCorrect。