Unity 3D游戏开发GUI高级控制之Group View控件

小摩棋牌游戏开发 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()方法用来绘制视图中的贴图,方法的第一个参数表示贴图的绘制区域,第二个参数表示贴图的资源。

程序运行后的效果如下所示:
Unity 3D游戏开发GUI高级控制之Group View控件
 

<!--EndFragment-->

 

<!--EndFragment-->

相关推荐