小摩棋牌游戏开发 2013-05-04
Group View是群组视图控件,可以将多个视图全部放在一个群组当中。将视图添加进群组当中后,群组中任何视图的坐标都是相对坐标,它是相对群组视图左上角的坐标。
修改群组视图的坐标后,群组中所有视图的坐标都会跟着修改。群组视图在游戏界面开发中经常使用,因为设备的屏幕尺寸不同,这样做可以避免对坐标进行多次修改的麻烦。在群组视图中,使用GUIContent()方法可以设置提示信息,使用GUI.tooltip可以得到GUIContent()方法中第二个字符串参数设置的提示字符串。
下面来看实例代码:
#pragma strict //定义两个贴图对象 var viewTexture0:Texture2D; var viewTexture1:Texture2D; function OnGUI () { //开始一个群组对象 GUI.BeginGroup(Rect(10,10,200,400)); //显示一个贴图,坐标为相对群组的坐标(10,50) GUI.DrawTexture(Rect(10,20,viewTexture0.width,viewTexture1.height),viewTexture0); //标签控件显示提示信息 GUI.Label(Rect(10,110,100,30),"Group View one"); //按钮控件 GUI.Button(Rect(10,140,100,30),"Button"); //结束一个群组对象 GUI.EndGroup(); //开始一个群组对象 GUI.BeginGroup(Rect(300,50,200,400)); //显示一个贴图,坐标为相对群组的坐标(10,50) GUI.DrawTexture(Rect(10,20,viewTexture0.width,viewTexture1.height),viewTexture0); //标签控件显示提示信息 GUI.Label(Rect(10,110,100,30),"Group View two"); //按钮控件 GUI.Button(Rect(10,140,100,30),"Button"); //结束一个群组对象 GUI.EndGroup(); }
上述代码中使用了GUI.BeginGroup()方法可以创建一个群组视图,但是必须要和GUI.EndGroup()方法结束群组视图一起使用,否则程序报错。在GUI.BeginGroup()方法可以设定群组视图的区域,在该区域中可添加任意控件对象,如果超出该范围,则不予显示。再次强调,群组视图中所有控件的坐标都采取相对坐标,相对该群组视图左上角的坐标。该控件的好处在于移动群组视图后,期中的所有控件都会跟着移动,永远保持相对的为。
另外GUI.DrawTexture()方法用来绘制视图中的贴图,方法的第一个参数表示贴图的绘制区域,第二个参数表示贴图的资源。
程序运行后的效果如下所示:
<!--EndFragment-->
<!--EndFragment-->