#はじめに
この記事は「サムザップ #1 Advent Calendar 2020」の12月15日の記事です。
昨日の記事は@tomeitouさんの「未来の本番不具合を減らすための振り返りと分析」でした。
Unity 2019で「Shortcut Manager」という機能が追加されました。この機能はunity上でショートカットを設定できる機能です。
設定できるショートカットは、既存のメニューの機能やMenuItemです。
MenuItemとして実装をすれば、独自の機能もショートカットとして追加することができます。
今回はUnity Shortcut Managerを使って、ショートカットを設定する手順を紹介します。
#既存の機能をショートカットに設定する
###ショートカットの設定ウインドウを開く
以下の手順から設定ウインドウを開きます
Windows: Edit > Shortcuts
Mac: Unity > Shortcuts
赤色キー:すでにショートカットが割り当てられる
青色キー:他のキーとセットで入力するショートカットとして割り当てられている
黒色キー:まだショートカットが割り当てられていない
Category:メニューのどの操作に属しているか
Name : 操作名
Bindings : 割り当てられているショートカット
###ショートカットを割り当てる
ボタンを生成するコマンドにショートカットを割り当てます
操作一覧からボタンを生成するコマンドを探します
Nameの欄をダブルクリックして、割り当てたいショートカットを入力します。今回はOption + bを割り当てました。
実際に使ってみます。
独自のメニューを作って、ショートカットに設定する
最後に独自の処理をショートカットとしてつかってみたいと思います。
まず、MenuItemとして、ショートカットとして使いたい処理を実装します。
今回はヒエラルキー上の選択されたGameObjectの順番を変更する処理を用意しました。
using System.Linq;
using UnityEditor;
using UnityEngine;
public class TestShortCut : MonoBehaviour
{
[MenuItem( "Tools/GameObject Down" )]
private static void Down()
{
var selectedGameObjects = Selection.gameObjects;
foreach(var selectedGameObject in selectedGameObjects.Reverse())
{
selectedGameObject.transform.SetSiblingIndex(selectedGameObject.transform.GetSiblingIndex() + 1);
}
}
[MenuItem( "Tools/GameObject Up" )]
private static void Up()
{
var selectedGameObjects = Selection.gameObjects;
foreach(var selectedGameObject in selectedGameObjects)
{
selectedGameObject.transform.SetSiblingIndex(selectedGameObject.transform.GetSiblingIndex() - 1);
}
}
}
MenuItemを実装すると、Shortcut managerにも表示されます。
GameObject Down:選択されているゲームオブジェクトをヒエラルキーの順番を下にする
GameObject Up:選択されているゲームオブジェクトをヒエラルキーの順番を下にする
実際に使ってみます
#まとめ
今回はUnity Shortcut Managerを使って、ショートカットを設定する方法を紹介しました。
普段、マウスを使ってよく行う操作をショートカットに設定すると、とても快適になります。もしよかったら、使ってみてください。最後まで読んでいただきありがとうございました。
明日のアドベントカレンダーの担当は@ichikawa_masahiroさんです。