困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

Unityの話~エディター拡張を頑張る話1~

今まで、何故かUnityエディターその物をもっと効率よく扱おうと思ってこなかった。もうUnityが流行り始めて3年以上経とうというのに、未だにどこかこのソフトウェアに浸かるのに抵抗があったのだと思う。

その思いをようやく捨てられそうなので、この際に、UnityでもVIMのように極力キーボード入力で、マウスを使用する回数も減らせるように、今更ながらエディター拡張を頑張る事にした。

 

ここでは、ショートカットキーとか、キーマップとかいう、特定のキーを押すと処理が実行するという物を説明する。

 

〇基本
その前に、一応知らない人の為に説明しておくと、Unityのエディター拡張とは、
・自分でショートカットコマンドを作れる
・自分でウィンドウを作れる
・既存のウィンドウに機能を追加できる
のような事を指す。

このあたりの詳しい説明は、「Unity エディター拡張」とかでググッてみてもらうといいと思う。

 

〇キーマップ編集
まずは、マウスでやるような事ではない物は、キーボードを叩くだけで行えるようにする。
その為には、Unityで独自にキーマップの設定が可能かどうか調べる必要があった。

調べてみると、

docs.unity3d.com

うん、出来るようだね。

[UnityEditor.MenuItem("ShortCutCommand/Test % ")]
このような記述をすれば、Ctrl+Spaceで実行が可能となる。(%=Ctrl
、「 」がす「Space」)

 

〇ハマりポイント
ここで、いくつかハマったポイントがあるので記載しておく。

・すでにUnityがデフォルトで設定しているキーマップは上書きできない
例えば、Ctrl+Vはオブジェクトのペーストですでに予約されているので、これは使えない。Ctrl系は結構使われているので、拡張するには向かないかもしれない。

 

・入力エディットにフォーカスが有っても、キーマップ受付が優先される
例えば、キーマップにShift+Vとかを登録しておいたとして、AddComponentでコンポーネントを探す為に検索入力に文字を打っている時に、大文字Vを打とうとすると、キーマップが優先されてVが入力できない。
という事は、通常のキー入力とSHIFT全般を登録してしまうと、不便になる事が予測された。

 

上記2点から、仕方ないのでALT+*をメインにキーマップの登録を行った。モード切り替えとか実装してもよかったのだが、めんどくさかったのでやらないことにした。

 

という事で、次回からこの手の話題は、作ったショートカットコマンドを紹介していく事とする。