public class Script_04_01 : MonoBehaviour{ [SerializeField] private int id; [SerializeField] private string name; [SerializeField] private GameObject prefab; public GameObject[] objs; public string datas; } using UnityEngine; using UnityEditor; [CustomEditor(typeof(Script_04_01))] public class Script_04_01_Insprctor : Editor { public override void OnInspectorGUI() { serializedObject.Update();//更新最新数据 //获取数据信息 SerializedProperty property = serializedObject.FindProperty("id"); //赋值数据 property.intValue = EditorGUILayout.IntField("主键", property.intValue); property = serializedObject.FindProperty("name"); property.stringValue = EditorGUILayout.TextField("姓名", property.stringValue); property = serializedObject.FindProperty("prefab"); property.objectReferenceValue = EditorGUILayout.ObjectField("游戏对象", property.objectReferenceValue, typeof(GameObject), true); EditorGUILayout.PropertyField(serializedObject.FindProperty("objs"), true);//原生方法绘制 EditorGUILayout.PropertyField(serializedObject.FindProperty("datas"), true); serializedObject.ApplyModifiedProperties();//保存全部数据 } }
可以通过SerializedObject和SerializedProperty来获取和设置数据。