The indent level of the field labels.
EditorGUILayout.LabelField will display the string given as an argument. This string can be displayed at a horizontal position, and the position changed by indentLevel. As indentLevel increases the labels will move right. Decreasing indentLevel will move labels to the left.
Shows info of the selected object.
// Shows info of the selected transform
class EditorGUIIndent extends EditorWindow {
@MenuItem("Examples/Indent usage") static function Init() { var window = GetWindow(EditorGUIIndent); window.position = Rect(0, 0, 100, 100); window.Show(); }
function OnGUI() { var obj = Selection.activeTransform; EditorGUILayout.LabelField("Name:", obj ? obj.name : "Select an Object"); if(obj) { // Indent block more EditorGUI.indentLevel++; EditorGUILayout.LabelField("Position:", obj.position.ToString()); EditorGUILayout.LabelField("Rotation:", obj.rotation.eulerAngles.ToString()); // Indent inner block even more EditorGUI.indentLevel++; EditorGUILayout.LabelField("X:", obj.rotation.x.ToString()); EditorGUILayout.LabelField("Y:", obj.rotation.y.ToString()); EditorGUILayout.LabelField("Z:", obj.rotation.z.ToString()); EditorGUILayout.LabelField("W:", obj.rotation.w.ToString()); // End of inner block EditorGUI.indentLevel--; EditorGUILayout.LabelField("Scale:", obj.localScale.ToString()); // End of block EditorGUI.indentLevel--; } } }
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;
public class EditorGUIIndent : EditorWindow { [MenuItem("Examples/indentLevel demo")] static void Init() { EditorWindow window = GetWindow(typeof(EditorGUIIndent)); window.position = new Rect(100, 100, 300, 150); window.Show(); }
void OnGUI() { Transform obj = Selection.activeTransform; EditorGUILayout.LabelField("Name:", obj ? obj.name : "Select an Object");
if (obj) { // Indent further the area of position and rotation EditorGUI.indentLevel++; EditorGUILayout.LabelField("Position:", obj.position.ToString()); EditorGUILayout.LabelField("Rotation:", obj.rotation.eulerAngles.ToString());
// Indent further again the area of rotation values EditorGUI.indentLevel++; EditorGUILayout.LabelField("X:", obj.rotation.x.ToString()); EditorGUILayout.LabelField("Y:", obj.rotation.y.ToString()); EditorGUILayout.LabelField("Z:", obj.rotation.z.ToString()); EditorGUILayout.LabelField("W:", obj.rotation.w.ToString());
// End of inner area EditorGUI.indentLevel--; EditorGUILayout.LabelField("Scale:", obj.localScale.ToString());
// End of area EditorGUI.indentLevel--; } } }
To maximize future compatibility, do not make assumptions about what a specific indent level means, but instead just increase or decrease by one around blocks of controls that need to be more indented, as in the example above.
Did you find this page useful? Please give it a rating: