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来获取和设置数据。
