一、靜態(tài)屬性
1、顏色
改變背景顏色:GUI.backgroundColor
改變內(nèi)容顏色: GUI.contentColor
改變內(nèi)容改變內(nèi)容和背景顏色: GUI.color
//改變背景顏色
GUI.backgroundColor = Color.yellow;
GUI.Button(new Rect(0, 0, 200, 30), "改變背景顏色");
GUI.backgroundColor = Color.white;
GUI.Button(new Rect(0, m_interval, 200, 30), "改變背景顏色");
//改變內(nèi)容顏色
GUI.contentColor = Color.yellow;
GUI.Button(new Rect(0, m_interval * 2, 200, 30), "改變內(nèi)容顏色");
GUI.contentColor = Color.white;
GUI.Button(new Rect(0, m_interval * 3, 200, 30), "改變內(nèi)容顏色");
//改變內(nèi)容和背景顏色
GUI.color = Color.yellow;
GUI.Button(new Rect(0, m_interval * 4, 200, 30), "改變內(nèi)容和背景顏色");
GUI.color = Color.white;
GUI.Button(new Rect(0, m_interval * 5, 200, 30), "改變內(nèi)容和背景顏色");
?
2胆绊、文本輸入框:GUI.TextField
GUI.changed:如果有輸入控件的值發(fā)生改變,就會返回true欧募。
stringToEdit = GUI.TextField(new Rect(0, m_interval * 6, 200, 20), stringToEdit, 25);
if (GUI.changed)
Debug.Log("GUI.TextField 內(nèi)容有修改");
3压状、 GUI的激活狀態(tài):GUI.enabled
GUI.enabled控制之后的GUI的激活狀態(tài),未激活的GUI不能接收事件跟继。
toggleGroup = GUI.Toggle(new Rect(0, m_interval * 7, 200, 20), toggleGroup, "ToggleGroup");
GUI.enabled = toggleGroup;
if (GUI.Button(new Rect(0, m_interval * 8, 200, 30), "測試toggleGroup的按鈕1"))
{
Debug.Log("點擊了button1");
}
if (GUI.Button(new Rect(0, m_interval * 9, 200, 30), "測試toggleGroup的按鈕2"))
{
Debug.Log("點擊了button2");
}
?
4种冬、GUI.depth
5、GUI.matrix
6舔糖、GUI.skin
二娱两、靜態(tài)方法
1、GUI.Label
GUI.Label(new Rect(210, 10, 100, 20), "Hello World!");
2金吗、 GUI.Box
GUI.Box(new Rect(210, 50, 50, 50), "A BOX");
3十兢、GUI.Button
if (GUI.Button(new Rect(210, 110, 70, 30), "A button"))
Debug.Log("點擊了按鈕!");
4辽聊、 GUI.BeginGroup
m_beginGroupRect = new Rect(0, 0, Screen.width / 2, Screen.height / 2);
//BeginGroup 可以用來管理UI纪挎,UGUI的Panel,組里面的UI元素是相對于組創(chuàng)建的跟匆。
GUI.BeginGroup(m_beginGroupRect);
GUI.Box(new Rect(m_beginGroupRect), "自適應(yīng)的 BeginGroup 測試异袄!");
GUI.EndGroup();
5、GUI.BeginScrollView
//滑動區(qū)域
scrollPosition = GUI.BeginScrollView(new Rect(10, 10, 200, 200), scrollPosition, new Rect(0, 0, 220, 200));
GUI.Button(new Rect(0, 0, 100, 20), "Top-left");
GUI.Button(new Rect(120, 0, 100, 20), "Top-right");
GUI.Button(new Rect(0, 180, 100, 20), "Bottom-left");
GUI.Button(new Rect(120, 180, 100, 20), "Bottom-right");
GUI.EndScrollView();
?
6玛臂、 GUI.DrawTexture烤蜕、GUI.DrawTextureWithTexCoords
//畫一個圖片
if (aTexture)
{
GUI.DrawTexture(new Rect(10, 110, 110, 110), aTexture, ScaleMode.StretchToFill, true, 10.0F);
GUI.DrawTextureWithTexCoords(new Rect(10, 240, 110, 110), aTexture, new Rect(10, 240, 110, 110), false);
}
7封孙、 GUI.SetNextControlName
為下一個控件設(shè)置控件名稱。
8讽营、 GUI.FocusControl
通過控件名稱設(shè)置聚焦虎忌,設(shè)置聚焦時參數(shù)為控件名稱,取消聚焦時參數(shù)為null橱鹏。(EditorGUILayout.TextField 控件如果被聚焦膜蠢,返回的值修改之后,不會馬上刷新莉兰,需要取消聚焦才能看到刷新之后的值挑围。)
GUI.SetNextControlName("MyTextField");
username = GUI.TextField(new Rect(10, 410, 100, 20), username);
pwd = GUI.TextField(new Rect(10, 440, 100, 20), pwd);
if (GUI.Button(new Rect(10, 470, 80, 20), "設(shè)置聚焦"))
GUI.FocusControl("MyTextField");
if (GUI.Button(new Rect(10, 500, 80, 20), "取消聚焦"))
GUI.FocusControl(null);//取消聚焦
9、GUI.HorizontalSlider糖荒、GUI.VerticalSlider杉辙、GUI.HorizontalScrollbar、GUI.VerticalScrollbar
hSliderValue = GUI.HorizontalSlider(new Rect(210, 150, 100, 30), hSliderValue, 0.0F, 10.0F);
vSliderValue = GUI.VerticalSlider(new Rect(210, 170, 100, 30), vSliderValue, 10.0F, 0.0F);
hSValue = GUI.HorizontalScrollbar(new Rect(210, 210, 100, 30), hSValue, 1.0F, 0.0F, 10.0F);
vSValue = GUI.VerticalScrollbar(new Rect(210, 230, 100, 30), vSValue, 1.0F, 10.0F, 0.0F);
10捶朵、GUI.GetNameOfFocusedControl
獲取當(dāng)前聚焦的控件名稱蜘矢,如果沒有聚焦或者沒有控件命名返回空字符串。
11综看、GUI.Window品腹、 GUI.FocusWindow、GUI.DragWindow
GUI.BringWindowToBack寓搬、GUI.BringWindowToFront
//GUI.depth珍昨、GUI.BringWindowToBack、GUI.BringWindowToFront都可以改變窗口的層級
//GUI.BringWindowToBack GUI.BringWindowToFront
private Rect windowRect = new Rect(20, 20, 120, 120);
private Rect windowRect2 = new Rect(80, 20, 120, 120);
private Rect windowRect3 = new Rect(150, 20, 120, 120);
// GUI.depth
int guiDepth1 = 0;
int guiDepth2 = 0;
//
string m_focusedControlName = "";
void OnGUI()
{
windowRect = GUI.Window(0, windowRect, DoMyWindow1, "第一個窗口");
windowRect2 = GUI.Window(1, windowRect2, DoMyWindow2, "第二個窗口");
windowRect3 = GUI.Window(2, windowRect3, DoMyWindow3, "第三個窗口");
}
void DoMyWindow1(int windowID)
{
// GUI.depth = guiDepth1;
if (GUI.Button(new Rect(10, 20, 100, 20), "Window1"))
{
//GUI.BringWindowToBack(1);//將窗口id為1的窗口設(shè)置到最后
//guiDepth1 = 1;
//guiDepth2 = 0;
//GUI.BringWindowToFront(1);//將窗口id為1的窗口設(shè)置到最前
GUI.FocusWindow(1); //聚焦到id為1的窗口
}
//DragWindow 可拖動的窗口
GUI.DragWindow(new Rect(0, 0, 10000, 20));
}
void DoMyWindow2(int windowID)
{
//GUI.depth = guiDepth2;
if (GUI.Button(new Rect(10, 20, 100, 20), "Window2"))
{
//GUI.BringWindowToBack(2);
//guiDepth1 = 0;
//guiDepth2 = 1;
GUI.BringWindowToFront(2);
}
GUI.DragWindow(new Rect(0, 0, 10000, 20));
}
void DoMyWindow3(int windowID)
{
// GUI.depth = guiDepth2;
if (GUI.Button(new Rect(10, 20, 100, 20), "Window3"))
{
//GUI.BringWindowToBack(0);
//guiDepth1 = 0;
//guiDepth2 = 1;
GUI.BringWindowToFront(0);
}
GUI.DragWindow(new Rect(0, 0, 10000, 20));
}