GUI、GUILayout、EditorGUI、EditorGUILayout

时间:2023-03-08 15:47:30

GUI

GUI.BeginGroup(rect) //在里面画的控件,将以这个GroupRect的左上角为原点,仅此而已

GUI.EndGroup()

GUILayout

GUILayout.BeginArea() //在穿上区域中自动对齐

GUILayout.EndArea()

GUILayout.BeginHorizontal() //横向一个个排列

GUILayout.EndHorizontal()

GUILayout.BeginVertical() //纵向一个个排列

GUILayout.EndVertical()

GUILayoutOptions //改变对齐选项

GUILayoutOptions是什么?就是把画GUI的时候有时候需要指定许多选项,把这些选项统一封装成 GUILayoutOptions。比如指定宽度、最大宽度等

GUIContent是什么?跟GUILayoutOptions原理是一样的,他是指控件的“内容”。比如一个按钮,他的“内容”是什么?内容就是按钮上的文字!但是还有可能包含tooltip,图片。把这些东西统称为按钮的“内容”,然后用GUIContent来统一表示!以前自己写界面的时候,要画一个按钮,参数要写很多:文字、图片、对齐、。。。Unity 把这些参数分类后,变得比较简洁了。

EditorGUI
EditorGUILayour

如何响应按钮的点击?

if (GUILayout.Button("q button", GUILayout.Width(100))){

Debug.Log("Clicked!");
}

如何获取edit的内容?

string s = EditorGUILayout.TextField("");