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

让人想犯罪 __ 提交于 2019-12-03 15:27:18

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

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!