読者です 読者をやめる 読者になる 読者になる

渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きく慣れるように。。。 ※所属団体とは一切関係がありません

Unity Editor拡張で確認入力ウィンドウを作る


f:id:esakun:20150730215258g:plain

環境

  • Unity5.4.2f1

UnityEditorのデフォルト機能で EditorUtility.DisplayDialog をカスタマイズしたダイアログウィンドウが作れないかなと思ったのがきっかけでした。

EditorUtility.DisplayDialogはい or いいえ ボタンを選び、bool値が返ってるAPIです。 しかしダイアログの中身の編集機能は、メッセージを変更するくらいしか提供されていません。

要件

  • エディタに直打ち入力できないテキストフィールドA
  • テキストフィールドBを格納したウィンドウ出す
  • ウィンドウを出した時エディタは非アクティブ
  • Bにテキストを入力してOKボタン押す
  • Aに内容が入力される

経緯としては、あまり自由に変更を加えさせたくないテキストがありました。一手間掛けさせたインタラクションにして、オペミスを無くすのが目的です。

自分で工夫して作ってしまおう!

  • EditorGUI.BeginDisableGroupを使う
  • 開くウィンドウにコールバックを渡す

この2点がポイント。

こんな感じの成果物になりました。

f:id:esakun:20161109025307g:plain

ソースコードはコチラ。

gist.github.com ※こちらのソースをEditorフォルダ配下に格納し、MonoBehaviourクラスを継承したConfirmTestクラスを作る必要があります。

やりたいことの最低限は達成している状態ですが、本当はEditor全てアクセス不能にしてウィンドウを出したいのです。
悔しいのでもう少し調べる予定。

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info