序列化脚本
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来获取和设置数据。

图片.png


首页 我的博客
粤ICP备17103704号