Displays or updates a progress bar.
The window title will be set to title
and the info will be set to info
.
Progress should be set to a value between 0.0 and 1.0, where 0 means nothing done and 1.0 means 100% completed.
This is useful if you perform a long blocking operation in an Editor script, and want to notify the user about the progress.
Note that this method is intended to be used for "modal" operations, i.e. a long operation that would make the editor
non-responsive. For long operations that happen in the background, use Progress class instead.
After showing the progress bar, call ClearProgressBar to clear it.
See Also: DisplayCancelableProgressBar, ClearProgressBar methods, Progress class.
Progress bar in the Editor.
using System.Threading; using UnityEditor; using UnityEngine;
// Shows a progress bar for the given number of seconds. public class EditorUtilityDisplayProgressBar : EditorWindow { public float secs = 5f; [MenuItem("Examples/Progress Bar Usage")] static void Init() { var window = GetWindow(typeof(EditorUtilityDisplayProgressBar)); window.Show(); }
void OnGUI() { secs = EditorGUILayout.Slider("Time to wait:", secs, 1.0f, 20.0f); if (GUILayout.Button("Display bar")) { var step = 0.1f; for (float t = 0; t < secs; t += step) { EditorUtility.DisplayProgressBar("Simple Progress Bar", "Doing some work...", t / secs); // Normally some actual computation would be here; // for this example just sleep. Thread.Sleep((int)(step * 1000.0f)); } EditorUtility.ClearProgressBar(); } } }