(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

ショートカットキー(ホットキー)の重複を警告してくれたり、検索や変更が出来たりする新機能、Shortcut Manager【Unity】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2019.1.0a7


はじめに

Unityには他のアプリケーションと同様にショートカットキー(ホットキー)がいくつもありますし、



自分で実装する事も簡単に出来ます。



しかし、簡単にショートカットが作れるゆえに、(特にエディタ拡張系のアセットを使っていると)

「どんなショートカットがあるか分からない、重複してるかも分からない」という問題があります。


これらの問題を解決すべく、Unityでは新しいショートカットシステムの開発が進んでいましたが、


f:id:kan_kikuchi:20181103090219j:plain
【Unite Tokyo 2018】エディター拡張マニアクス2018 - YouTube


ついにUnity 2019.1から新システム「Shortcut Manager」が使えるようになりました!



今回はこれを使ってみようという感じの記事です。


基本的な使い方

まずEdit -> ShotcutsからShortcut Managerのウィンドウを開きます。


f:id:kan_kikuchi:20181103091417j:plain


ショートカットを設定したいコマンドの右側をダブルクリックすると入力出来るようになるので、


f:id:kan_kikuchi:20181103091747j:plain


この状態で登録したいショートカットのキーを押せば、設定完了です。


f:id:kan_kikuchi:20181103091758j:plain


なお、既に登録されているキーを登録しようとした場合は警告が表示されます。

Create conflictは重複を気にせずそのままショートカットを登録し、

Cancelは登録を中止、

Reassignは先に登録されているショートカットを消します。


f:id:kan_kikuchi:20181103091841j:plain


ちなみに重複しているショートカットはBinding Conflictsでも確認できます。


f:id:kan_kikuchi:20181103101656j:plain


さらに重複しているショートカットを実行するとShotcut Conflict(警告)が表示されるようになりました。

(前はどちらかのショートカットが実行されていた)


f:id:kan_kikuchi:20181103100657j:plain


Resolve ConflictはShortcut Managerを開き、

Cancelはショートカットの実行をやめ、


f:id:kan_kikuchi:20181103100915j:plain


Perform Selectedを押すと選択してるやつを実行します。

この時、Rebind to selected commandにチェックを入れてると

選択してない方のショートカットを消します。


f:id:kan_kikuchi:20181103100923j:plain


プロファイル

Shortcut Managerは複数のプロファイル(設定)を作る事も可能で、

プロファイルの変更などは左上のプルダウンから行います。

Defaultが初期状態のもので、プロファイルの新規作成や名前変更、削除もここから行います。


f:id:kan_kikuchi:20181103093646j:plain


なお、Defaultのプロファイルは変更出来ないので、

Defaultを選択した状態で何かを変更すると自動でDefault copyというプロファイルが作成されます。


f:id:kan_kikuchi:20181103093114j:plain


検索機能

Shortcut Managerには、ショートカットの検索機能も付いています。


f:id:kan_kikuchi:20181103093654j:plain


上記のようにデフォルトはコマンドを検索していますが、ショートカットの検索も可能です。


f:id:kan_kikuchi:20181103093755j:plain


ただし、ショートカットは入力したやつと全く同じやつのみを検索するようです。

例えば「A」を入力しても「Shift + Option + A」のショートカットは出ないみたいな感じです。


f:id:kan_kikuchi:20181103093807j:plain


自分で作ったショートカット

Shortcut Managerは、自分で作ったショートカットも扱えます。

//Shift + Alt + gキーを押すと実行される
[MenuItem("Test/Log #&g")]
private static void Log() {
  Debug.Log("Log");
}

f:id:kan_kikuchi:20181103095411j:plain


ただし、プログラムで指定したショートカットをShortcut Managerで変えてしまうと、

プログラムに書いてるショートカットと、実際のショートカットが異なってしまうので注意が必要です。


f:id:kan_kikuchi:20181103095427j:plain