首先,对于编辑器中的GUI系统,我们可以分为四大类:
1、UnityEngine.GUI
2、UnityEngine.GUILayout (最常用)
3、UnityEditor.EditorGUI
4、UnityEditor.EditorGUILayout
一.GUI系统
这是运用最广泛的GUI系统,所属命名空间UnityEngine,用其绘制的所有控件不带有自动布局效果,需要手动指定每个控件的绘制位置和大小,自适应性较弱,但开发自由度较高。
注意:GUI系统可以在发布后使用,也可以在编辑器中使用
二.GUILayout系统
带自动布局的GUI系统,所属命名空间UnityEngine,用其绘制的所有控件都带有自动布局效果,自适应性较强,但开发自由度较低。
注意:GUILayout系统可以在发布后使用,也可以在编辑器中使用。
三.EditorGUI系统
适用于编辑器的GUI系统,所属命名空间UnityEditor,用其绘制的所有控件不带有布局效果,需要手动指定每个控件的绘制位置和大小,跟GUI系统的差别是其拥有部分编辑器专用控件,且其只能运行在编辑器内,自适应性较弱,但开发自由度较高。
注意:EditorGUI系统不可以在发布后使用,只能在编辑器中使用。
四.EditorGUILayout系统
带自动布局的EditorGUI系统,所属命名空间UnityEditor,用其绘制的所有控件都带有自动布局效果,跟GUILayout系统的差别是其拥有部分编辑器专用控件,且其只能运行在编辑器内,自适应性较强,但开发自由度较低。
注意:EditorGUILayout系统不可以在发布后使用,只能在编辑器中使用。
如何使用EditorGUILayout系统拓展自定义编辑器窗口?:https://blog.csdn.net/qq_42672770/article/details/108767403
四个GUI系统可以混用,EditorGUI和EditorGUILayout系统中的控件多是带Field,可见其用意主要是用来展示字段的值,GUI系统由于不带布局,所以在编辑器开发中使用的较少,除非有时候需要创建高自由度的界面时会首选他,GUILayout系统开发编辑器工具是使用得最多的。
引用:http://blog.sina.com.cn/s/blog_17148af6d0102ybef.html#commonComment