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