456
======================================================================================================
ObjectField
var newMaterial = (Material) EditorGUILayout.ObjectField("Material", currentMaterial, typeof(Material),false);
======================================================================================================
static void ShowReadonlyIntField(string name, int value){
EditorGUILayout.BeginHorizontal();
GUILayout.Label(name, GUILayout.Width(EditorGUIUtility.labelWidth));
GUI.enabled = false;
EditorGUILayout.IntField(value);
GUI.enabled = true;
EditorGUILayout.EndHorizontal();
}
======================================================================================================
HelpBox
GUILayout.BeginVertical(EditorStyles.helpBox);
GUILayout.Label("Title");
GUILayout.Label("Description", EditorStyles.wordWrappedMiniLabel);
GUILayout.EndVertical();
======================================================================================================
// Позволяет менять фон кнопки (возможно и других элементов, но это нужно тестировать)
GUI.backgroundColor = Color.blue;
GUILayout.Button("X");
======================================================================================================
GUI элементам можно задавать несвойственные им стили через
EditorStyles. или GUI.skin. или можно задавать даже строками e.g. "miniButton" (но такого, думаю, лучше избегать)
void OnGUI{
bool b = GUI.Toggle(rect, value, text, GUI.skin.button);
}
======================================================================================================
Можно подписываться на события Undo Redo
Undo.undoRedoPerformed += OnUndoPerformed;