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

EditorUtility.DisplayCancelableProgressBar

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读所有用户建议的更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

声明

public static bool DisplayCancelableProgressBar(string title, string info, float progress);

描述

显示或更新一个带有取消按钮的进度条。

窗口标题设置为 title,信息设置为 info。设置进度应为介于 0.0 和 1.0 之间的值,其中 0 表示未加载任何内容,1.0 表示加载完成。

当您在编辑器脚本中执行长时间的阻塞操作,并且希望通知用户进度时,此方法非常有用。对导致编辑器无响应的长时间操作,请使用此方法。对于在后台发生的长时间操作,请使用 Progress 类。

返回值为 true 表示用户按下了取消按钮。当返回值为 true 时,您必须停止正在进行的任务。在显示进度条后,使用 EditorUtility.ClearProgressBar 来清除它。

其他资源:EditorUtility.DisplayProgressBarEditorUtility.ClearProgressBarProgress


编辑器中的可取消进度条。

using System.Threading;
using UnityEditor;
using UnityEngine;

// Shows a cancellable progress bar for the specified number of seconds. public class EditorUtilityDisplayCancelableProgressBar : EditorWindow { public float secs = 5f; [MenuItem("Examples/Progress Bar Usage")] static void Init() { var window = GetWindow(typeof(EditorUtilityDisplayCancelableProgressBar)); 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) { if (EditorUtility.DisplayCancelableProgressBar("Cancelable", "Doing some work...", t / secs)) break; // Normally, some computation happens here. // This example uses Sleep. Thread.Sleep((int)(step * 1000.0f)); } EditorUtility.ClearProgressBar(); } } }