Unity Editor下,可以在不改变原有布局的情况下扩展Inspect的界面。
在继承了Editor的类中,有两种实现方式:
第一种
using UnityEditor;
[CustomEditor(typeof(CustomClass))]
public class CustomClassEditor : Editor {
public override void OnInspectorGUI() {
// 自定义代码
base.OnInspectorGUI();
// 自定义代码
}
}
第二种
using UnityEditor;
[CustomEditor(typeof(CustomClass))]
public class CustomClassEditor : Editor {
public override void OnInspectorGUI() {
// 自定义代码
DrawDefaultInspector();
// 自定义代码
}
}
当然,这两种方式对开发者自定义的组件的显示是没有问题的,因为自定义的组件本身的绘制方式就是利用的Editor类中的OnInspectorGUI方法。
Unity内置的一些组件,比如说AudioSource这个组件,有的开发者发现扩展了它以后,显示在Inspector中的样式跟默认的有很大区别。
代码:
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(AudioSource))]
public class CustomAudioSourceEditor : Editor {
public override void OnInspectorGUI() {