CustormEditor一般与类Editor配合使用!以实现在Inspector面板中的自定义显示!
- using UnityEngine;
- using System.Collections;
- using UnityEditor;
- [CustomEditor(typeof(myType))]
- public class menutest : Editor
- {
- public override void OnInspectorGUI()
- {
- myType s = target as myType;
- // ........
- }
- }
使用时有几个注意点:
1、CustomEditor + typeof + 类名
2、自定义类是Editor的派生类
3、绘制自定义UI要重写OnInspectorGUI函数。此函数是虚函数。
=====================================================
Editor类是自定义Editor的基类。它派生自ScriptableObject。
1、变量
serializedObject | 序列化对象,代表被Inspector的对象 |
target | 被Inspector的对象。比如某个脚本。 |
targets | 被Inspector的对象数组。假如某gameobject上有多个相同的脚本。 |
注意:这里的target并不是指某个GameObject,而是指gameobject上的某个脚本(组件)。
2、函数
DrawDefaultInspector | 绘制build-in的inspector |
DrawHeader | 绘制Editor头 |
GetInfoString | 预览窗口顶部资源信息 |
GetPreviewTitle | 若要改变预览的label,可以重写此函数 |
HasPreviewGUI | |
OnInspectorGUI | |
OnInteractivePreviewGUI | |
OnPreviewGUI | |
OnPreviewSettings | |
RenderStaticPreview | |
Repaint | 重绘 |
UseDefaultMargins | 使用默认的inspector |
3、静态函数
CreateEditor | 创建Editor。当在某个Editor的OnInspectorGUI中调用CreateEditor(someObj)时,会绘制someObj的Inspector。 |
4、消息
OnSceneGUI | 在SceneView中处理事件。可以用来在场景视图中绘制网格等 |