Unity のショートカットマネージャーでは、キーボードショートカットの表示と管理ができます。
ショートカットは Unity コマンドに紐づけられた任意のキー 、またはキーの組み合わせです。コマンドは、エディターで実行されるアクションです。例えば、R キーはシーンビューで スケール ツールをアクティベートするコマンドに紐づけられています。
ショートカットマネージャには Unity のメインメニューからアクセスします。
| A | プロファイルのドロップダウンメニュー: 異なるショートカットプロファイルを管理し、切り替えることができます。詳細については、ショートカットプロファイルを参照してください。 |
| B | キーマップ: コマンドに割り当てられているキーと、それらが割り当てられているコマンドを表示します。詳細については、キーマップを参照してください。キーマップを使用してショートカットを管理することもできます。 |
| C | カテゴリリスト: コマンドはカテゴリに分類され、Category リストに表示されます。カテゴリを選択すると、そのコマンドが右側の Command リストに表示されます。 |
| D | Command および Shortcut リスト: 選択したカテゴリのすべてのコマンドと割り当てられたショートカットを列挙します。詳細については、コマンドリストを参照してください。Command リストを使用してショートカットを管理することもできます。 |
Unity のコマンドはグローバルでもコンテキスト依存でも使用できます。
グローバルコマンドは常に使用可能です。例えば、デフォルトでは、アクションを元に戻すコマンドは Ctrl/Cmd + Z ショートカットに割り当てられます。そのショートカットを使用すると、開いているウィンドウや使用しているツールに関係なく、常に最後のアクションが取り消されます。
コンテキスト依存コマンドは、特定のビューやツールを使用する場合にのみ機能します。例えば、デフォルトでは角かっこキー [ and ] が Terrain (地形) ツールの 1 揃いのコマンドセットと Grid Painting ツールの別のコマンドセットに割り当てられています。これらのキーのいずれかを押すと、Unity はどちらかアクティブなツールのコマンドを実行します。
通常、ショートカットは 1 つのグローバルコマンド、または_コンテキストが異なる_ 1 つ以上のコンテキスト依存コマンドに割り当てられます。他の複数コマンドの組み合わせ (例えば、2 つのグローバルコマンド、または_同じコンテキスト_の 2 つのコンテキスト依存コマンド) は競合を引き起こし、管理が必要になります。ショートカットの競合やその管理方法の詳細については、ショートカットの競合を参照してください。
Unity には、他のグローバルコマンドと競合を起こすことなくショートカットを共有できる特別グローバルコマンドがいくつかあります。例えば、Q、W、E キーはそれぞれ View、Move、Rotate ツールに割り当てられていますが、Flythrough モードをアクティブにすると、これらのキーを使用して下、前、上に移動できます。
ここでは、ショートカットの割り当てを表示するキーマップを使用する方法について説明します。キー マップを使用してショートカットを追加、削除、変更する方法については、ショートカットの管理を参照してください。
キーマップは、どのキーとキーの組み合わせがコマンドに割り当てられているかを表示します。
![]() |
ピンク色のキーはグローバルコマンドに割り当てられます。 |
![]() |
青色のキーはコンテキスト依存コマンドに割り当てられます。 |
![]() |
白色のキーはどのコマンドにも割り当てられません。 |
![]() |
グレーのキーはコマンドに割り当てることができない特殊なキーです。 例えば、Shift や Ctrl/Cmd などの修飾キーや、Return や Esc などのユーティリティキーが該当します。 |
Shift、Ctrl/Cmd、Alt などの修飾キーを選択すると、キーマップが更新され、コマンドに割り当てられているショートカットと修飾キーの組み合わせが表示されます。キーマップでアクティブな修飾キーは青色に変わります。
ヒント:キーマップで一時的に修飾キーをアクティブにするには、修飾キーをキーボード上で押し続けます。
特定のキーが割り当てられているコマンドを確認するには、マウスのポインターをショートカットキーにマウスオーバーします。ツールチップに、キーに割り当てられているコマンドが表示されます。
キーの組み合わせについては、修飾キーをキーボードで押したままにするか、キー マップでそれらをクリックすることによって修飾キーをアクティブにしてから、マウスのポインターをショートカットキーにマウスオーバーします。
1 つのショートカットを複数のコマンドに割り当てることができます。Unity がコマンドを同時に実行できない限り、ショートカットは透過的に機能します。ただし、同時に実行できる複数のコマンドをショートカットにマップすると、競合します。競合を見つけそれらを管理する方法については、後述のショートカットの競合を参照してください。
ここでは、ショートカットの割り当てを表示する Command (コマンド) リストを使用する方法について説明します。Command リストを使用したショートカットの追加、削除、変更については、ショートカットの管理を参照してください。
Command リストには、特定のコマンドに割り当てられたショートカットが表示されます。Category リストからカテゴリを選択すると、Command リストにそのコマンドとショートカットが表示されます。
検索フィールドを使用して Command リストを検索することもできます。検索語句を入力すると、Command リストは自動的に検索語句に合うコマンドにスコープを絞り込みます。
特定のカテゴリを検索する場合、Search 行でスコープを選択して、選択したカテゴリの結果と All Unity Commands カテゴリの結果を切り替えることができます。
ショートカットマネージャーには、ショートカットの割り当て、変更、割り当て解除、リセットの方法がいくつかあります。
ショートカットの割り当てや変更は、以下のいずれかの方法で行います。
ショートカットの割り当て解除やリセットは、以下のいずれかの方法で行います。
キーマップまたは Command リストを使用して、ショートカットをコマンドに割り当てます。
キーマップを使用して、ショートカットを割り当てるには、以下のようにします。
ショートカットに追加する修飾キー (Shift や Ctrl/Cmd など) をクリックします。
Command リストからコマンドをメインのショートカットキーにドラッグアンドドロップします。
キーマップにカーソルを合わせると、カーソルが変化し、どの割り当てが可能であるかが示されます。
Command リストからショートカットを割り当てるには、以下のようにします。
Shortcut フィールドを編集するには、リスト内のコマンドをダブルクリックします。
Shortcut フィールドにカーソルを置き、通常どおりにキーボードのショートカットのキーを押します。
ショートカットに追加する修飾キー (Shift や Alt/Option など) を押したままにします。
ショートカットがすでにコマンドに割り当てられている場合は、新しい割り当てによって競合が発生します。競合の管理については、ショートカットの競合を参照してください。
キーマップまたは Command リストを使用して、コマンドに割り当てられたショートカットを削除したり、変更したショートカットをデフォルトのマッピングにリセットできます。
注意Unity はデフォルトの ショートカットの割り当てを Default プロファイルに保存します。詳細については、ショートカットプロファイルを参照してください。
キーマップでショートカットの割り当て解除やリセットを行うには、以下のようにします。
割り当てを解除またはリセットするショートカットキーを右クリックします。
キーの組み合わせの割り当て解除/リセットを行う場合は、ショートカットキーを右クリックする前に、含まれている修飾キー (Shift や Ctrl/Cmd など) をクリックします。
コンテキストメニューから
[COMMAND] > Reset to default を選択して、コマンドにデフォルトのショートカットを再割り当てします。
[COMMAND] > Remove shortcut を選択して、コマンドのショートカットの割り当てを解除します。
Command リストからショートカットの割り当ての解除またはリセットを行うには、以下のようにします。
割り当てを解除またはリセットするショートカットのコマンドを右クリックします。
コンテキストメニューから
または、
複数のコマンドを同時に実行できない場合は、同じショートカットを複数のコマンドに割り当てることができます。例えば、単一のショートカットは、シーンビューと Animation ウィンドウ内の別のコマンドに割り当てられている場合があります。2 つのウィンドウに同時にフォーカスを設定することはできないため、ショートカットを使用するときにどのコマンドが実行されるかは明確です。
同時に実行_できる_ 2 つのコマンドに同じショートカットを割り当てると、競合が生じます。例えば、以下に 1 つのショートカットを割り当てると競合が発生します。
_同じコンテキスト_の 1 つ以上のコンテキスト依存コマンド。
複数のグローバルコマンド
グローバルコマンドとコンテキスト依存コマンドの組み合わせ
ショートカットマネージャーは、新しいショートカットの割り当てを作成する場合や、競合するコマンドに割り当てられたショートカットを使用する場合に、競合を処理するためのオプションを提供します。
ショートカットの競合があるコマンドは、Command リストに “注意” を促すアイコンが付加されて表示されます。
Category リストで Binding Conflicts カテゴリを選択すると、ショートカットの競合があるコマンドの完全なリストを取得できます。
2 つの競合するコマンドにショートカットを割り当てると、Binding conflict ダイアログが開きます。
Create Conflict を選択して、既存のコマンド割り当てに加えて、ショートカットをコマンドに割り当てます。
Unity は、ショートカットに割り当てられたすべてのコマンドを Binding Conflicts カテゴリに追加します。
Reassign を選択すると、競合するコマンドのショートカットを再割り当てします。これにより、他のコマンド割り当てがすべて消去されます。
Cancel を選択すると、アクションを実行せずに終了します。
Unity で作業しているときに、競合するコマンドに割り当てられたショートカットを使用すると、Shortcut Conflict ダイアログが開きます。
リストからコマンドを選択し、Perform Selected ボタンをクリックしてコマンドを実行します。
コマンド実行前に Rebind to selected command オプションを有効にして、他の割り当てを消去し、選択したコマンドのみにショートカットが割り当てられるようにします。これは、他の割り当てを削除することと同じです。
Resolve Conflict を選択してショートカットマネージャーを開きます。ショートカットを変更して競合を解消できます。
Cancel を選択すると、アクションを実行せずに終了します。
ショートカットはプロファイルに保存されます。各プロファイルは Unity ショートカットの完全なセットで、ニーズに合わせて変更できます。プロファイルはいくつでも作成でき、必要に応じて切り替えることができます。Default プロファイル (以下を参照) を除くすべてのアクティブなプロファイルで、ショートカットを追加、削除、変更できます。アクティブなプロファイルへの変更は即座に反映されます。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 という新しいショートカットプロファイルに移行します。
ショートカットマネージャーの上部にあるプロファイルドロップダウンからプロファイルを選択します。
| A | プロファイルリスト: 使用可能なすべてのプロファイルをリストします。いずれか 1 つを選択してアクティブなプロファイルにします |
| B | プロファイルオプション: 新しいプロファイルを作成したり、アクティブなプロファイルの名前を変更したり削除したりするためのオプション。 |
Unity には、工場出荷時のショートカット設定を持つ Default プロファイルがあります。新しいプロファイルを作成すると、Unity は Default プロファイルをコピーします。
Default プロファイルは変更できません。変更しようとすると、Unity は自動的にコピー (_Default コピー_と呼ばれます) を作成し、そのコピーをアクティブなプロファイルにして、作成した変更をそのコピーに適用します。
キーボードでキーまたはキーの組み合わせを選択すると、Unity はキーボードイベントを生成し、そのイベントをアクティブなビューに送信します。アクティブなビューがイベントを使用できる場合 (例えば、 アクションをトリガーする場合など) は、イベントを使用します。そうでない場合、イベントはショートカットマネージャーに送信され、Unity はショートカットが割り当てられているコマンドを実行します。
カスタムツールを開発する場合は、ショートカットマネージャーがキーボードイベントを受信する前にプログラムでインターセプトできます。例えば、ショートカットマネージャーを使用して設定するよりももっと複雑な方法で、キーを押したときに反応するカスタムツールが必要な場合があります。
キーボードイベントをインターセプトする方法は、カスタムツールのインターフェースの作成に使用するシステムによって異なります。
IMGUI システムを使用している場合は、以下のスクリプトリファレンストピックを参照してください。
UI Elements システムを使用する場合は、以下のスクリプトリファレンスのトピックを参照してください。
ショートカットマネージャーからショートカットを変更するだけでなく、UnityEditor.ShortcutManagement 名前空間のクラスを使用して、スクリプトやパッケージなどの他の場所でカスタムショートカットを定義できます。例えば、ShortcutAttribute 属性と ClutchShortcutAttribute 属性を使用して、新しいショートカットを作成します。
Unity が別のソースからコマンドとショートカットをロードすると、以下が実行されます。
メインメニューの任意の新しいコマンドを Command リストの All Unity Commands カテゴリに追加します。すると、ショートカットマネージャーを使用してそれらのショートカットを作成できます。
カスタムコマンドカテゴリを Category リストに追加します。
カスタムキーボードのショートカットをショートカットデータベースに加えると、すべてのショートカットプロファイルに表示されます。
Command リストの Shortcut Conflicts カテゴリの現在のプロファイルのカスタムショートカットとショートカット間の競合を表示します。