using UnityEditor; using UnityEngine; //非必需,经常使用到
[MenuItem("Assets/My Test")] private static void Test() { Debug.Log("Hello World!") }
语法说明html
[MenuItem("path $t", Is, Priority)] private static void Test1() {} [MenuItem("path _t", Is, Priority)] private static void Test2() {}
%
表示 ctrl
#
表示 shift
&
表示 alt
下面表示快捷键为"ctrl+h" 的实例。dom
[MenuItem("Assets/My Test %h")] private static void Test() { Debug.Log("Hello World!") }
https://docs.unity3d.com/ScriptReference/Selection.html编辑器
Selection.Objects
能够得到选中的物品。函数
string[] guids = Selection.assetGUIDs; foreach ( var id in guids ) { string path = AssetDatabase.GUIDToAssetPath(id); if(Directory.Exists(path)) { Debug.Log(string.format("Directory {0} exist", path)) } }
[MenuItem("CONTEXT/Rigidbody/wyg_test")] private static TestRightButton() { Debug.Log("右键测试") }
编辑器的弹窗类须要继承EditorWindow
。测试
使用方法与GUI的使用方法基本一致,有Init,Awake,OnGUI等函数。ui
class TestWindow : EditorWindow { public void Init() { } publick void OnGUI() { GUILayout.Label("Test Window"); if (GUILayout.Button("Button")) { Debug.Log("On Button") } } }
如下效果都是组件的显示,因此是属于using UnityEngine;
的。插件
能够将数值的展现效果变成滑动条效果。3d
[Range(1, 12)] public int month;
控制占用多行显示。code
[Multiline(5)] public string msg1; [TextArea(3,5)] public string msg2; // 最少显示三行,最多显示五行
添加右键小菜单,添加一些小功能。orm
[ContextMenuItem("Random", "RandomNumber")] [ContextMenuItem("Reset", "ResetNumber")] public int number; void RandomNumber() { number = Random.Range(0, 100); } void ResetNumber() { number = 0; }
还有一个ContextMenu
的特性,用法相似。
public string Name; [ContextMenu("Reset Name")] private void ResetName() { Name = ""; }
设置颜色选择器。
public Color color1; [ColorUsage(false)] public Color color2; // 没有alpha [ColorUsage(true, true, 0, 8, 0.125f, 3)] public Color color3; // HDR