Editor 类(Inspector、Preview、Scene)
public class Editor : ScriptableObject{ }
注意继承 Editor的类,一般在类声明之前还有一句 [CustomEditor(typeof(xx))]
然而 继承 EditorWindow的类,一般没有声明,但是要打开窗口 [MenuItem(xxx)]
Editor 类 (继承这个可以为物体、组件创建自定义的Inspector),注意分两种:
1、消息函数 OnSceneGUI
2、公有函数,可以public override void xxx(){ }
可以在Scene视图中绘制东西,可以在Inspector中绘制基本的、以及预览窗口,在预览窗口中又可以加入其他信息
消息函数 |
---|
OnSceneGUI() |
用于重写的公有方法 |
---|
DrawDefaultInspector |
DrawHeader |
DrawPreview |
GetInfoString |
GetPreviewTitle |
HasPreviewGUI |
OnInspectorGUI |
OnInteractivePreviewGUI |
OnPreviewGUI |
OnPreviewSettings |
RenderStaticPreview |
Repaint |
RequiresConstantRepaint |
UseDefaultMargins |
继承来的消息函数还有 :Awake、OnEnable、OnDisable、OnDestroy
EditorWindow 类(自定义编辑器窗口)
public class EditorWindow : ScriptableObject { }
EditorWindow 类 (继承ScriptableObject) | – |
---|---|
Awake() | 在打开新窗口时调用。 |
OnDestroy() | 关闭窗口时调用 |
OnFocus() | 窗口获得键盘焦点时调用 |
OnLostFocus() | 当窗口失去键盘焦点时调用。 |
OnGUI() | 在这里绘制窗口的内容 |
OnHierachyChange() | 有物体在hierarchy窗口中发生改变时调用 |
OnInspectorUpdate() | Inspector更新,10帧每秒,意思难道是Inspector更新一次所有窗口都会调用一次这个函数 |
OnProjectChange() | Project发生变化,就会调用 |
OnSelectionChange() | 选择的东西发生改变就会调用 |
Update() | 在所有可见的EditorWindow窗口上每秒调用多次 |
继承来的消息函数还有 Awake、OnEnable、OnDisable
MonoBehaviour 类(Scene)
public class MonoBehaviour : Behaviour { }
这里只列出用于扩展编辑器的回调函数
MonoBehaviour类 |
---|
OnDrawGizmos |
OnDrawGizmosSelected |
ObjectPreview 类 (Preview)
继承ObjectPreview类 (注意 [CustomPreview(typeof(xx))]) |
---|
HasPreviewGUI() |
OnPreviewGUI() |
3种在Scene视图中绘制工具的方法 ——
Gizmos类 (UnityEngine命名空间) ——
MonoBehaviour子类的 OnDrawGizmos、OnDrawGizmosSelected
Handles类(UnityEditor命名空间) ——
Editor子类的 OnSceneGUI
[DrawGizmo(GizmoType.xxx)]
public static void FuctionName( Type t , GizmoType gizmoType){ … }