前言
大家好,本文将会为大家讲解Unity如何在编辑器环境下为自定义方法配置快捷键.
正文
首先创建一个脚本,在文件头加入:
using
UnityEditor
.
ShortcutManagement
;
随便写一个类,定义一个
静态
,
无参
或者
只有一个ShortcutArguments类型
参数的方法:
static
void
TestFun
(
ShortcutArguments
arguments
)
{
}
给这个方法添加
Shortcut
特性
[
Shortcut
(
)
]
根据
Shortcut文档
的表述,该特性一共有4个参数,分别是
-
id
string 类型,表示该快捷键的名称以及身份号,可以用
斜杠 /
分级(总共两级),第二级可以使用中文,例如"MyShortCut/快捷键测试".
-
context
Type 类型,该参数限定为
EditorWindow
的子类(测试的时候还提示可以是UnityEditor.ShortcutManagement.IShortcutToolContext 接口类型的实现类,但是我在2021版本并没有找到这个接口),在添加了这个参数后,可以通过方法中的参数获取到当前窗口的信息,换句话说,这个参数是用于
限定
快捷键生效于哪些窗口.
-
defaultKeyCode
KeyCode
类型,看到这个类型大家都懂的,就是触发用的哪个键.
-
defaultShortcutModifiers
ShortcutManagement.ShortcutModifiers
类型,可以理解为组合键,功能键,这个参数是个flag枚举类型,包括Ctrl键(Mac为Control键),Alt键(Mac为Option键)以及Shift键,使用的时候组合起来.
--------你好我是 --------
分割线
--------
让我们完善一下代码:
[
Shortcut
(
"MyShortcut/你好"
,
KeyCode
.
H
,
ShortcutModifiers
.
Action
)
]
static
void
TestFun
(
ShortcutArguments
arguments
)
{
Debug
.
Log
(
"Hello World "
)
;
}
接下来回到Unity中
等待编译
,然后在 Edit=>Shortcuts打开快捷键窗口:
可以看到我们写的方法已经显示在界面中了:
如果我们添加的快捷键与现有快捷键存在冲突的话,往上翻,可以在
Category
窗口中找到
Binding Conflicts
项目,在这里会列出冲突的键位.
除此之外还有
ClutchShortcut
特性,被称为离合式快捷键,语法一致,区别在于只有在按下和松开的时候触发,而
Shortcut
则是按下会一直触发,在快捷键管理窗口中以
淡粉色
标志.
至此,如果我们只是想简单地给编辑时方法添加一个快捷键的话,目前的内容已经足够了,但是还有个窗口的传入参数没有讲,我们下期再见吧!
本文介绍如何在Unity编辑器环境中为自定义方法配置快捷键,包括使用Shortcut特性的具体方法及注意事项。
3686

被折叠的 条评论
为什么被折叠?



