Unity Editor一些比较有意思的小功能

修改meta文件的内容:

  AssetImporter ai = AssetImporter.GetAtPath("Assets/XP");//获取
   ai.userData = "XP";//修改
 ai.SaveAndReimport();//保存

关闭Unity回调函数,在关闭unity时加个提示

EditorApplication.wantsToQuit
可以选择放在带有[InitializeOnLoad]特性的静态构造中添加

在Scene中绘图

Handles类

放在OnDrawGizmos()周期函数中
Handles.Label:显示文字
Handles.Slider:显示一个箭头

特性 [InitializeOnLoadMethod]

,放在方法前,当unity编辑器加载时,会自动调用该静态方法

[RuntimeInitializeOnLoadMethod]

Play之前调用

设置unity的选择模式,

在这里插入图片描述
Tools.current

自动点击和监听回调Play,Pause,Step

点击:EditorApplication.ExecuteMenuItem(“Editor/Play(Pause、Step)”);
回调:EditorApplication.playmodeStateChanged

双击Assets的文件回调[OnOpenAssetAttribute]

用于在Unity中打开资源的回调特性(例如,在项目浏览器中双击资源触发回调)
将这个特性放在静态方法前,该方法在Unity即将打开资源时被调用。方法具有以下签名之一:
static bool OnOpenAsset(int instanceID,int line)
static bool OnOpenAsset(int instanceID,int line,int column)
如果你打开了资源,返回true,如果是外部工具打开的,返回false
例:
[OnOpenAssetAttribute(1)]
public static bool step1(int instanceID, int line) {
string name = EditorUtility.InstanceIDToObject(instanceID).name;
Debug.Log(“打开资源步骤1 (” + name + “)”);
return false; // we did not handle the open
}
//Step2有一个索引为2的属性,因此将在step1之后调用
[OnOpenAssetAttribute(2)]
public static bool step2(int instanceID, int line) {
Debug.Log(“打开资源步骤2(” + instanceID + “)”);
return false; // we did not handle the open
}
OnOpenAssetAttribute 有一个选项可以在回调中提供一个顺序索引,从 0 开始。如果您有多个 OnOpenAssetAttribute 回调,并且您希望它们以特定顺序被调用,这将非常有用。回调按顺序调用,从零开始。

给创建的类创建自定义编辑器[CustomEditor(tpyeof(class))]

在Unity中创建脚本时,默认情况下,此脚本继承MonoBehaviour,因此可作为附加到游戏对象的组件。将一个组件放在游戏对象上时,Inspector会显示一个默认界面。通过CustomEditor特性可以自定义Inspector面板,

创建一个类,该类必须继承自 Editor。CustomEditor 特性告知 Unity 应该作为哪个组件的编辑器。CanEditMultipleObjects 特性告诉 Unity 您可以使用此编辑器来选择多个对象并同时更改所有对象。

重写OnInspectorGUI方法,在里面自定义GUI。GUI相关类和方法进行布局Inspector面板

在OnScene方法中可以自定义Scene GUI

获取要绘制的类型对象:父类Editor中target

给文件资源的Inspector面板自定义GUI

也是通过 CustomEditor 进行自定义
声音文件:AudioClip
脚本:MonoScript
场景文件:SceneAsset
文件夹:DefaultAsset
如何查看这个文件对应的类
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44806700/article/details/120341122