(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

エディタ拡張で進捗状況を表示する【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 5.4.0f3


はじめに

今回はエディタ拡張でなんらかの処理を行っている時に、進捗状況を表示する方法のご紹介です!

イメージとしては以下のような感じです。


f:id:kan_kikuchi:20161020133330g:plain


EditorUtility.DisplayProgressBar


エディタ拡張で進捗状況を表示したい時はEditorUtility.DisplayProgressBarを使うと楽が出来ます。



使い方は以下のようにDisplayProgressBarを呼ぶだけです。

float progress = 0;//進捗状況 0~1
EditorUtility.DisplayProgressBar ("タイトル""情報", progress);//プログレスバー表示

f:id:kan_kikuchi:20161020133549p:plain


なお、処理が完了した後、EditorUtility.ClearProgressBarを実行し、

プログレスバーを削除しないと、永遠と表示され続けるので注意が必要です。

//プログレスバー削除
EditorUtility.ClearProgressBar (); 

ちなみに最初の例であったコードは以下の通りです。

int loopCount = 100;

for (int i = 0; i < loopCount; i++) {
  float progress = (float)i / loopCount;
  EditorUtility.DisplayProgressBar (
    "ループ中", 
    i.ToString() + "回目(" + (progress * 100).ToString("F2") + "%)", 
    progress
  );
}

EditorUtility.ClearProgressBar (); 

f:id:kan_kikuchi:20161020133330g:plain