显示或更新含有 Cancel 按钮的进度条。
窗口标题将设置为 /title/,信息将设置为 /info/。
进度应设置为 0.0 和 1.0 之间的一个值,0 表示一点儿也没有完成,1.0 表示完成 100%。
如果您在编辑器脚本或向导中执行任何冗长的运算
,并希望通知用户相应进度,这非常有用。
返回此函数的参数,以指示用户是否已按下 Cancel 按钮。
之后,您负责停止正在执行的任务。
另请参阅:DisplayProgressBar、ClearProgressBar 函数。
Cancelable progress bar in the editor.
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(); } }