Help - Custom Edit Inspector

Hello!
I need help, need get something like that in my inspector with Editor script Without using “defaultInspector()”

Script in MonoBehaviour :

using UnityEngine;
using System.Collections;

public enum StateSide{ left, right}

[System.Serializable]
public class Rotation{
    public Vector3 relativeRot;
    public int amount = 1;
    public StateSide side;
}

public class Test2 : MonoBehaviour{
    public Rotation rotation;

    void Update () {
        // Update logic here...
    }
}

Script in Editor:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test2))]
public class Rotate_Inspector : Editor {

    Test2 m_target;

    void OnEnable () {
        m_target = (Test2)target;
    }
 
    public override void OnInspectorGUI () {
        GUILayout.Label("How i to do?");
    }
}

Check out EditorGUILayout.

For Vector3 fields, use EditorGUILayout.Vector3Field

For integer fields, use EditorGUILayout.IntField

For enums, use EditorGUILayout.EnumPopup

Ohh Cool @Ian094 but i not need help for print in inspector Vector3, ints and enum, i need help for use arrow down Hide/show, without using some boolean u.u
You can help me?

EditorGUILayout.Foldout

1 Like

Just use the PropertyField(). it’ll handle the foldouts, the child fields, and Undo functionality all in one

public override void OnInspectorGUI ()
{
    serializedObject.Update();

    var p_rotation = serializedObject.FindProperty("rotation");

    EditorGUI.BeginChangeCheck();

    EditorGUILayout.PropertyField(p_rotation,true);
   
    if(EditorGUI.EndChangeCheck())
    {
        serializedObject.ApplyModifiedProperties();
    }
}
2 Likes