天天看點

Unity 3D遊戲開發GUI進階控制之Group View控件

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-->

繼續閱讀