版本:Unity 6 (6000.0)
语言英语
  • C#

EditorUtility.DisplayProgressBar

建议更改

成功!

感谢你帮助我们改进 Unity 文档。尽管我们无法接受所有提交,但我们确实会阅读来自用户的所有建议更改,并在适当的时候进行更新。

关闭

提交失败

由于某种原因,无法提交你建议的更改。请在几分钟后<a>重试</a>。感谢你花时间帮助我们改进 Unity 文档。

关闭

取消

声明

public static void DisplayProgressBar(string title, string info, float progress);

描述

显示或更新进度条。

窗口标题将设为 title,信息将设为 info。进度应设为 0.0 到 1.0 之间的值,其中 0 表示什么都没做,1.0 表示已完成 100%。

在编辑器脚本中执行长时间阻塞操作并且想通知用户进度时,这会很有用。将此方法用于使编辑器无响应的长操作。对于在后台发生的长时间操作,请改用 Progress 类。

显示进度条后,使用 ClearProgressBar 清除进度条。

其他资源:DisplayCancelableProgressBarClearProgressBar 方法、Progress 类。


编辑器中的进度条。

using System.Threading;
using UnityEditor;
using UnityEngine;

// Shows a progress bar for the specified 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 computation happens here. // This example uses Sleep. Thread.Sleep((int)(step * 1000.0f)); } EditorUtility.ClearProgressBar(); } } }