キャンセルボタンのあるプログレスバーを表示します
ウィンドウのタイトルは title
、左下に表示される情報は info
に設定します。
進捗は0~1を設定することができ、0は何も行われていないことを意味しており、1は100%で完了している意味を指します。
エディタスクリプトやウィザードで処理の長い操作を行う時や
ユーザーに進捗状況を知らせる時に使用すると便利です。
ユーザーがキャンセルボタンを押すと、戻り値が取得できるようになります。
実際に実行しているタスクを停止するのはあなたの責任で停止させるようにしてください。
See Also: DisplayProgressBar, ClearProgressBar 関数
キャンセル可能なプログレスバー
// Simple Editor Script that fills a cancelable bar in the given seconds. class DisplayCancelableProgressBar extends EditorWindow { var secs = 10.0; var startVal = 0; var progress = 0; @MenuItem("Examples/Cancelable Progress Bar Usage") static function Init() { var window = GetWindow(DisplayCancelableProgressBar); window.Show(); } function OnGUI() { secs = EditorGUILayout.IntField("Time to wait:", secs); if(GUILayout.Button("Display bar")) { if(secs < 1) { Debug.LogError("Seconds should be bigger than 1"); return; } startVal = EditorApplication.timeSinceStartup; } if(progress < secs) { if(EditorUtility.DisplayCancelableProgressBar( "Simple Progress Bar", "Shows a progress bar for the given seconds", progress/secs)) { Debug.Log("Progress bar canceled by the user"); startVal = 0; } } else { EditorUtility.ClearProgressBar(); } progress = EditorApplication.timeSinceStartup - startVal; } function OnInspectorUpdate() { Repaint(); } }