この記事でのバージョン
Unity 2018.4.1f1
はじめに
エディタ拡張で何かをする前に「〇〇しますか?」のような確認が欲しいみたいな事はよくありますが、
残念ながらUnityにそういう標準機能はありません。
(もしあったらご一報頂けると幸いです!)
ありました!
という事で今回は「はい」と「いいえ」など、
2つの選択肢を出して確認するためのウィンドウを作って見ました
イメージとしては以下のような感じ。
ConfirmationEditorWindow.Open( title : "ログ確認ウィンドウ", message : "ログにメッセージを表示しても大丈夫ですか?\nヾ( ゚д゚)ノ゛", messageType : MessageType.Warning, trueSelectionText : "いいよ!", falseSelectionText : "だめ!!", callback : OnSelectedConfirmation );
//確認ウィンドウの選択がされた private static void OnSelectedConfirmation(bool isSelectedTrue) { if (isSelectedTrue) { Debug.Log("ありがとうございます!ログ表示しました!"); } }
ConfirmationEditorWindow
さっそく、「はい」と「いいえ」など、2つの選択肢を出して確認するためのウィンドウ
ConfirmationEditorWindowのコードです。
使い方は簡単、ConfirmationEditorWindow.Showを実行するだけ。
(callbackがよう分からんという方はこちらの記事を参照のこと)
//メニューからウィンドウを表示 [MenuItem("Window/Confirmation Editor Window")] public static void Open() { //確認ウィンドウを表示 ConfirmationEditorWindow.Open( title : "たいとる", message : "メッセージ", messageType : MessageType.Warning, trueSelectionText : "いえす", falseSelectionText : "のー", callback : OnSelectedConfirmation ); } //確認ウィンドウの選択がされた private static void OnSelectedConfirmation(bool isSelectedTrue) { Debug.Log(isSelectedTrue); }
Openの引数は以下の通りで、
引数 | |
---|---|
title | ウィンドウの上部(ヘッダー?)に表示される文字列 |
message | ウィンドウの中央に表示される文字列 |
messageType | メッセージの種類。None、Info、Warning、Errorの4つがある |
trueSelectionText | 左側に配置される「はい」に該当するボタンに表示される文字列、押されるとcallbackがtrueで実行される |
falseSelectionText | 右側に配置される「いいえ」に該当するボタンに表示される文字列、押されるとcallbackがfalseで実行される |
callback | ボタンを押された時に実行されるコールバック、引数はbool |
MessageTypeの種類 | イメージ |
---|---|
None | |
Info | |
Warning | |
Error |
どの引数も省略する事も可能です。
ConfirmationEditorWindow.Open();
また、選択肢ボタンの文字列を空文字にする事で、ボタンを一つにする事も可能です。
ConfirmationEditorWindow.Open( title : "たいとる", message : "メッセージ", messageType : MessageType.Warning, trueSelectionText : "いえす", falseSelectionText : "", //falseの選択肢を表示しない callback : OnSelectedConfirmation );
なお、ウィンドウは常に前面にされ、
左上のバツボタンで消すことも可能ですが、その際もコールバックがfalseで実行されます。