こんにちは、エンジニアのオオバです。
Unityエディタのデフォルト機能で EditorUtility.DisplayDialog
をカスタマイズしたダイアログウィンドウが作れないかなと思ったのがきっかけでした。
EditorUtility.DisplayDialog
は はい or いいえ ボタンを選び、bool値が返ってるAPIです。
しかしダイアログの中身の編集機能は、メッセージを変更するくらいしか提供されていません。
要件
- エディタに直打ち入力できないテキストフィールドA
- テキストフィールドBを格納したウィンドウ出す
- ウィンドウを出した時エディタは非アクティブ
- Bにテキストを入力してOKボタン押す
- Aに内容が入力される
経緯としては、あまり自由に変更を加えさせたくないテキストがありました。一手間掛けさせたインタラクションにして、オペミスを無くすのが目的です。
自分で工夫して作ってしまおう!
- EditorGUI.BeginDisableGroupを使う
- 開くウィンドウにコールバックを渡す
この2点がポイント。
こんな感じの成果物になりました。
ソースコードはコチラ。
テキスト入力確認ウィンドウサンプル · GitHub
※こちらのソースをEditorフォルダ配下に格納し、MonoBehaviourクラスを継承したConfirmTestクラスを作る必要があります。
やりたいことの最低限は達成している状態ですが、本当はEditor全てアクセス不能にしてウィンドウを出したいのです。
悔しいのでもう少し調べる予定。

この記事が気に入ったら
筆者のXをフォローしよう
筆者のXをフォローしよう
オススメ記事
検証環境
- Unity5.4.2f1