Shortcuts Manager 可用于查看和管理 Unity 中的键盘快捷键。
快捷键是绑定到 Unity 命令的任意键或键组合。命令是在 Editor 中执行的操作。例如,R 键绑定到激活 Scene 视图中的缩放工具的命令。
可以从 Unity 的主菜单访问 Shortcuts Manager:
A | 配置文件下拉菜单:允许管理不同的快捷键配置文件以及在它们之间切换。请参阅快捷键配置文件以了解详细信息。 |
B | 键映射:显示分配给命令的键以及接受键分配的命令。请参阅键映射以了解详细信息。还可以使用键映射来管理快捷键。 |
C | Category 列表:命名被分为各种类别,这些类别将显示在 Category 列表中。选择一个类别时,相应的命令将显示在右侧的 Command 列表中。 |
D | Command 和 Shortcut 列表:列出所选类别中的所有命令及其被分配的快捷键。请参阅 Command 列表以了解详细信息。还可以使用 Command 列表来管理快捷键。 |
Unity 命令可以是全局命令或上下文命令。
全局命令始终可用。例如,默认情况下会将执行撤销 (Undo) 操作的命令分配给 Ctrl/Cmd + Z 快捷键。不管哪些窗口已开启以及哪些工具处于激活状态,使用该快捷键始终会撤消上一个操作。
上下文命令仅在使用特定视图或工具集时才有效。例如,默认情况下,方括号键 [ 和 ] 被分配给地形工具中的一组命令和网格绘制工具中的另一组命令。按下其中任一键时,Unity 都会为激活的工具执行该命令。
通常需要为一个全局命令或_不同上下文_的一个或多个上下文命令分配快捷键。其他多命令组合(例如,两个全局命令或_同一上下文_的两个上下文命令)会产生冲突,并需要管理这些冲突。有关快捷键冲突及其管理方法的信息,请参阅快捷键冲突。
Unity 还有一些特殊的全局命令。这些命令可以与其他全局命令共享快捷键,而不会产生冲突。例如,分别将 Q、W 和 E 键分配给查看、移动和旋转工具,但是激活 飞越 模式后,可以使用这些键来向下、向前和向上移动。
此部分说明如何使用键映射来查看快捷键分配情况。有关使用键映射来添加、删除和修改快捷键的信息,请参阅管理快捷键。
键映射显示已将哪些键和组合键分配给命令。
粉红键分配给全局命令。 | |
蓝色键分配给上下文命令。 | |
白色键未分配给任何命令。 | |
灰色键是无法分配给命令的特殊键。 例如,修改键(比如 Shift 和 Ctrl/Cmd)或者功能键(比如 Return 和 Esc)。 |
选择修改键(例如 Shift、Ctrl/Cmd 和 Alt)将更新键映射,从而显示将快捷键和修改键的哪些组合分配给了命令。激活的修改键在键映射中变为蓝色。
提示:要暂时激活键映射中的修改键,请在键盘上按住这些键。
要查看特定键分配给了哪些命令,请将鼠标指针悬停在快捷键上。工具提示中会列出该键分配到的命令。
对于组合键,请按住键盘上的修改键或在键映射上单击修改键,从而将修改键激活,然后将鼠标指针悬停在快捷键上。
可以将一个快捷键分配给多个命令。只要 Unity 无法同时执行这些命令,该快捷键就会透明运作。但是,如果将快捷键映射到可以同时执行的多个命令,则会产生冲突。要了解快捷键冲突及其管理方法,请参阅下文的快捷键冲突。
此部分说明如何使用 Command 列表来查看快捷键分配情况。有关使用 Command 列表来添加、删除和修改快捷键的信息,请参阅管理快捷键。
Command 列表显示已将哪些键分配给特定命令。从 Category 列表中选择一个类别即可在 Command 列表中显示相应的命令以及快捷键。
还可以使用搜索框来搜索 Command 列表。键入搜索词时,Command 列表会自动将范围缩小到与搜索词匹配的命令。
如果搜索特定类别,可以在 Search 行中设置范围,从而在所选类别的结果与 All Unity Commands 类别的结果之间切换。
Shortcuts Manager 提供分配、修改、取消分配和重置快捷键的几种方法。
通过执行以下操作之一来分配或修改快捷键:
通过执行以下操作之一来取消分配或重置快捷键:
使用键映射或 Command 列表将快捷键分配给命令。
单击要包含在快捷键中的任何修改键(例如,Shift 或 Ctrl/Cmd)。
将命令从 Command 列表拖放到主快捷键上。
一旦将鼠标悬停在键映射上,光标就会改变以指示可能的分配。
双击列表中的命令以编辑该命令的快捷键字段。
像往常一样,光标处于快捷键字段之中时,在键盘上按下所需的快捷键。
确保按住要包含在快捷键中的所有修改键(例如 Shift 或 Alt/Option)。
如果已经将快捷键分配给命令,则新分配会产生冲突。有关管理冲突的信息,请参阅快捷键冲突。
使用键映射或 Command 列表来删除命令已分配到的快捷键,或将修改后的快捷键重置为默认映射。
注意:Unity 会将默认快捷键分配情况存储在默认配置文件中。请参阅快捷键配置文件以了解详细信息。
右键单击要取消分配或重置的快捷键。
如果要取消分配/重置某个组合键,请单击包含的任何修改键(例如 Shift 或 Ctrl/Cmd),然后右键单击该快捷键。
从上下文菜单中:
选择 [COMMAND] > Reset to default,将默认快捷键重新分配给该命令。
选择 [COMMAND] > Remove shortcut,取消分配该命令的快捷键。
要使用 Command 列表来取消分配或重置快捷键,请执行以下操作:
右键单击要取消分配或重置的快捷键的命令。
从上下文菜单中:
或者:
可以将相同快捷键分配给多个命令,前提是无法同时执行这些命令。例如,可能在 Scene 视图中将一个快捷键分配给一个命令,而在 Animation 窗口中将此快捷键又分配给另一个命令。由于这两个窗口不能同时具有焦点,所以使用快捷键时,对于 Unity 会执行哪个命令,并没有任何歧义。
如果将一个快捷键分配给两个_可以_同时执行的命令,就会产生冲突。例如,将单个快捷键分配给以下命令时,会产生冲突:
_同一上下文_的一个或多个上下文命令。
多个全局命令。
全局命令和上下文命令的组合。
创建新的快捷键分配以及使用分配给冲突命令的快捷键时,Shortcuts Manager 会为您提供处理冲突的选项。
出现快捷键冲突的命令在 Command 列表中带有“警告”图标。
在 Category 列表中选择 Binding Conflicts 类别,即可获得出现快捷键冲突的命令的完整列表。
将一个快捷键分配给两个冲突的命令就会打开 Binding conflict 对话框。
选择 Create Conflict 可将快捷键分配给命令(即使已经有任何现有的命令分配)。
Unity 会将所有分配了该快捷键的命令添加到快捷键的 Binding Conflicts 类别。
选择 Reassign 可将此快捷键重新分配给冲突的命令。这将清除其他的任何命令分配。
选择 Cancel 可退出而不执行任何操作。
在 Unity 中操作时,使用分配给冲突命令的快捷键将打开 Shortcut Conflict 对话框。
从列表中选择一个命令,然后单击 Perform Selected 按钮即可执行该命令。
在执行命令以清除其他任何分配之前,请启用 Rebind to selected command 选项,从而仅将此快捷键分配给所选命令。这等同于删除其他分配。
选择 Resolve Conflict 可打开 Shortcuts Manager,然后可以在其中修改快捷键以消除冲突。
选择 Cancel 可退出而不执行任何操作。
快捷键存储在配置文件中。每个配置文件都是一整套的 Unity 快捷键,您可以对其进行修改以满足需求。可以创建任意数量的配置文件,并根据需要在这些配置文件之间切换。可以在任何激活的配置文件中添加、删除或修改快捷键,但默认配置文件除外(请见下文)。对激活的配置文件所做的更改会立即生效。Unity 自动保存更改,并且不会提示您接受还是拒绝这些更改。
Unity 将快捷键配置文件存储在项目之外的 Unity 偏好设置目录中:
在 Windows 上:%APPDATA%/Unity\Editor-5.x\Preferences\shortcuts
在 macOS 上:~/Library/Preferences/Unity/Editor-5.x/shortcuts
在 Linux 上:~/.config/unity3d/Preferences/Editor-5.x/shortcuts
这意味着您创建的任何配置文件在所有项目中都可用。
升级:从旧版本的 Unity 升级时,Unity 会将您在 Preferences 中配置的所有快捷键迁移到名为 UserProfile 的新快捷键配置文件。
可以从 Shortcuts Manager 顶部的配置文件下拉菜单中管理配置文件:
A | 配置文件列表:列出所有可用的配置文件。选择一个配置文件,使其成为激活的配置文件。 |
B | 配置文件选项:用于创建新配置文件、重命名或删除激活的配置文件的选项。 |
Unity 有一个包含“出厂”快捷键设置的默认配置文件。创建新的配置文件时,Unity 都会复制默认配置文件。
无法修改默认配置文件。如果尝试修改默认配置文件,Unity 会自动创建一个副本(名为 _Default copy_),使该副本成为激活的配置文件,并将您的更改应用于该副本。
在键盘上选择一个键或组合键时,Unity 会生成一个键盘事件并将该事件发送到激活的视图。如果这个激活的视图可以使用该事件(例如,触发操作),则会使用该事件。否则会将事件发送到 Shortcuts Manager,然后 Unity 将执行此快捷键被分配到的命令。
在开发自定义工具时,可以在键盘事件到达 Shortcuts Manager 之前以编程方式拦截此类事件。例如,有时可能希望自定义工具的按键反应方式比您使用 Shortcuts Manager 所能配置的方式更复杂。
如何拦截键盘事件取决于您用于创建自定义工具界面的系统。
如果使用的是 IMGUI 系统,请参阅以下脚本参考主题:
如果使用的是 UI Elements 系统,请参阅以下脚本参考主题:
除了在 Shortcuts Manager 中修改快捷键,还可以使用 UnityEditor.ShortcutManagement 命名空间中的类在其他位置(例如脚本和包)中定义快捷键。例如,使用 ShortcutAttribute 和 ClutchShortcutAttribute 属性来创建新的快捷键。
Unity 从另一来源加载命令和快捷键时会执行以下操作:
将主菜单中的任何新命令添加到 Command 列表中的 All Unity Commands 类别中,以便您可以使用 Shortcuts Manager 为这些命令创建快捷键。
将自定义命令类别添加到 Category 列表。
将自定义键盘快捷键添加到快捷键数据库,以便它们显示在所有快捷键配置文件中。
在 Command 列表的 Shortcut Conflicts 类别中显示自定义快捷键与当前配置文件中的快捷键之间的任何冲突。
2019–02–18 页面已发布
在 2019.1 中添加了 Shortcuts Manager NewIn20191