# 【自定义脚本编辑器】

有时候需要定制指定C#文件的编辑器界面,以下是一个示例:

比如有个 ScriptA.cs 文件,该文件有个 fieldA 的属性值。

该示例可以给这个ScriptA的编辑器界面添加一个按钮,按下后随机给fieldA一个值。

Assets/Editor/ScriptAEditor.cs

using System;
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(ScriptA))]
public class ScriptAEditor : Editor
{
    SerializedProperty fieldAProp;

    private void OnEnable()
    {
        fieldAProp = serializedObject.FindProperty("fieldA");
    }

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

        GUILayout.Space(10);
        if(GUILayout.Button("设置一个随机值"))
        {
            fieldAProp.stringValue = UnityEngine.Random.value + "";
        }

        serializedObject.ApplyModifiedProperties();
    }
}