キャンセルボタンのあるプログレスバーを表示します
ウィンドウのタイトルは info
、左下に表示される情報は info
に設定します。
進捗は 0~1 を設定することができ、0 は何も行われていないことを意味しており、1 は 100%で完了している意味を指します。
エディタースクリプトやウィザードで処理の長い操作を行う時や
ユーザーに進捗状況を知らせるときに使用すると便利です。
ユーザーがキャンセルボタンを押すと、戻り値が取得できるようになります。
実際に実行しているタスクを停止するのはあなたの責任で停止させるようにしてください。
関連項目: DisplayProgressBar、ClearProgressBar 関数
キャンセル可能なプログレスバー
using UnityEngine; using UnityEditor;
public class CancelableProgressBarExample : EditorWindow { static int secs = 0; static double startVal = 0; static double progress = 0;
[MenuItem( "Example/Cancelable Progress Bar" )] static void Init( ) { // Get existing open window or if none, make a new one: CancelableProgressBarExample window = (CancelableProgressBarExample)EditorWindow.GetWindow( typeof(CancelableProgressBarExample) ); window.Show( ); }
void OnGUI( ) { if( secs > 0 ) { if( GUILayout.Button( "Display bar" ) ) startVal = EditorApplication.timeSinceStartup;
progress = EditorApplication.timeSinceStartup - startVal;
if( progress < secs ) { if( EditorUtility.DisplayCancelableProgressBar( "Simple Progress Bar", "Shows a progress bar for the given seconds", (float)(progress / secs) ) ) { Debug.Log( "Progress bar canceled by the user" ); startVal = 0; } } else EditorUtility.ClearProgressBar( ); } else secs = EditorGUILayout.IntField( "Time to wait:", secs ); } void OnInspectorUpdate( ) { Repaint( ); } }