`
longerdewo
  • 浏览: 29836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(Editor)在Unity上自定义菜单 CustomEditor

 
阅读更多

CustormEditor一般与类Editor配合使用!以实现在Inspector面板中的自定义显示!

 

 

[csharp] view plaincopy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using UnityEditor;  
  4.   
  5. [CustomEditor(typeof(myType))]  
  6. public class menutest : Editor  
  7. {  
  8.     public override void OnInspectorGUI()  
  9.     {  
  10.         myType s = target as myType;  
  11.         // ........  
  12.     }  
  13. }  


使用时有几个注意点:

 

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中处理事件。可以用来在场景视图中绘制网格等

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics