Utility Buttonはスクリプトを使わずにマクロを組んだようなボタンを作ることが出来るUnityEditor拡張です。
複数の操作をまとめたりよく使う機能をボタンにすることで開発の効率化に貢献します。
さらに作成したボタンにはショートカットキーを割り振ることが可能です。
以下のような使い方などが考えられます。
・お気に入りにするようによく使う機能やよく開く(選択)するAsset、Sceneをボタン化する
・複数の手順を1つのボタンにまとめる
・デバッグ中に知りたい値をログ出力する
・複数処理を1つのボタンにまとめる
・MenuItemの実行
・Asseteの開く・選択
・スクリプト内のMethodの実行、値の変更(privateのメンバにもアクセス出来ます)
・ログ出力
・Delay設定
MenuItemの実行
ボタンのレイアウト編集
Assetを開く
Component内の値の変更
全体の編集Windowは[Tools > Utility Button > Setting]を選択します
各ボタンの編集Windowはボタンを右クリックします
Edit: ボタンの編集表示を切り替え
Copy: ボタンをコピー(Jsonデータ)
Paste: コピーされたボタンを上書き
Paste+: コピーされたボタンを追加
+: ボタンの追加
-: ボタンの削除
Name: ボタンに表示する名前
Tooltip: カーソルを合わせたときのTooltipの設定
New Line: ボタンを新しい行に移動するか
Space: ボタン左側のスペースの大きさ
Width: ボタンの幅
Height: ボタンの高さ
Color: ボタンの色
Font Color: Nameの色
Shortcut Key: ショートカットキーに割り当てたいキーを選択します
[Shortcut Key]を編集する度にUtilityButtonShortcut.csが自動で作成され、
MenuItemのショートカットに登録されます。
Copy: ボタンをコピー(Jsonデータ)
Paste: コピーされたボタンを上書き
Paste+: コピーされたボタンを追加
+: ボタンの追加
-: ボタンの削除
Typeは実行する処理の種類です。
種類は以下のとおりです。
None: 何もしない
MenuItem: UnityのMenuItemを実行
OpenAsset: 指定したのAssetを開く
SelectAsset: 指定したAssetを選択
Log: 設定したものをLog出力
Delay: 指定した秒数待ち
StaticMethod: 指定したStatic Methodを実行
CompnentMethod: GameObjectを検索しComponentのMethodを実行
SetStaticMemberValue: Static Menberに指定した値を代入
SetComponentMemberValue: GameObjectを検索しComponentに値を代入
UnityのMenuItemを実行します。
Menuに/区切りで指定します。
下の画像のように[GameObject/3D Object/Cube]設定します
指定したAssetを開く、選択します。
Assetに開きたい、選択したいAssetを設定します。
下はOpenAssetの場合です。
待ち時間を設定します
Time(Sec): 待ち時間を秒で入れます
指定したStatic Methodを実行。
Class: namespaceを含めたクラス名を指定します。入力後に検索に一致したクラスを選択できます。
Method: Method名(private にもアクセスできます)
下の動画は右の画像の引数がintのMethodを実行しています。
Hierarchy上のGameObjectを指定し、GameObjectのComponentのMethodを実行。
GameObject: HierarchyのGameObject名を指定します。( / 区切りで指定する事もできます )
Class: namespaceを含めたクラス名を指定します。入力後に検索に一致したクラスを選択できます。
Method: Method名(private にもアクセスできます)
下の動画は右の画像の引数なしのMethodを実行しています。
Static Menberに指定した値を代入。
Class: namespaceを含めたクラス名を指定します。入力後に検索に一致したクラスを選択できます。
Member: Member名(private にもアクセスできます。プロパティにもアクセスできます)
代入する値はArg 0です。
Hierarchy上のGameObjectを指定し、GameObjectのComponentのMemberに値を代入。
GameObject: HierarchyのGameObject名を指定します。( / 区切りで指定する事もできます )
Class: namespaceを含めたクラス名を指定します。入力後に検索に一致したクラスを選択できます。
Member: Member名(private にもアクセスできます。プロパティにもアクセスできます)
代入する値はArg 0です。
+: ボタンの追加
-: ボタンの削除
Int: int型の値を設定
Float: float型の値を設定
Bool: bool値のOn/Offを設定
String: 文字列を設定
Vector3: xyzのfloat型の値を設定
Enum: 整数値でenumを設定
Asset: Assetを設定
AssetArray: Assetの配列を設定
GameObject: HierarchyのGameObject名を設定
Component: GameObjectとComponent名を設定
Component Member: ComponentとComponentのメンバ名を設定
Static Member: クラス名とメンバ名を設定
TextBoxに整数値を入力します
TextBoxに実数を入力します
チェックボックでtrue, falseを切り替えます
TextBoxに文字列を入力します
TextBoxに実数を入力します。左から順にxyz
TextBoxに整数値を入力します。(enum名は設定できません)
ObjectFieldにAssetを設定します
+ボタン、-ボタンでObjectFieldを増減します。
ObjectFieldにAssetを設定します。
TextBoxにGameObject名を指定します。( / 区切りで指定する事もできます )
GameObjectのTextBoxにGameObject名を指定します。( / 区切りで指定する事もできます )
ComponentのTextBoxにComponent名を指定します。入力後に検索に一致したクラスを選択できます。
GameObjectのTextBoxにGameObject名を指定します。( / 区切りで指定する事もできます )
ComponentのTextBoxにComponent名を指定します。入力後に検索に一致したクラスを選択できます。
MemberのTextBoxにMember名を指定します。(private にもアクセスできます。プロパティにもアクセスできます)
ClassのTextBoxにClass名を指定します。入力後に検索に一致したクラスを選択できます。
MemberのTextBoxにMember名を指定します。(private にもアクセスできます。プロパティにもアクセスできます)
Copy ボタンを押すとクリップボードにJsonデータが保存されます。
Paste ボタンを押すとJsonデータが正しければペーストされます。